All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/tests/dga/dga_evaluate.c:35,1
    - Dst: exit
      Src: /src/ndpi/tests/dga/dga_evaluate.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: help
    functionSourceFile: /src/ndpi/tests/dga/dga_evaluate.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void help()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/tests/dga/dga_evaluate.c:49,1
    - Dst: assert
      Src: /src/ndpi/tests/dga/dga_evaluate.c:50,1
    - Dst: va_start
      Src: /src/ndpi/tests/dga/dga_evaluate.c:62,1
    - Dst: vprintf
      Src: /src/ndpi/tests/dga/dga_evaluate.c:63,1
    - Dst: va_end
      Src: /src/ndpi/tests/dga/dga_evaluate.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - protocol
    - module_struct
    - log_level
    - file
    - func
    - line
    - format
    argTypes:
    - u_int16_t
    - struct ndpi_detection_module_struct*
    - ndpi_log_level_t
    - char*
    - char*
    - unsigned
    - char*
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: ndpi_dbg_fn
    functionSourceFile: /src/ndpi/tests/dga/dga_evaluate.c
    functionUses: 0
    functionsReached:
    - vprintf
    - va_end
    - assert
    - va_start
    linkageType: ''
    returnType: void
    signature: "void ndpi_dbg_fn(u_int16_t protocol,\n                        struct
      ndpi_detection_module_struct *module_struct,\n                        ndpi_log_level_t
      log_level, const char *file,\n                        const char *func, unsigned
      line,\n                        const char *format, ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: help
      Src: /src/ndpi/tests/dga/dga_evaluate.c:74,1
    - Dst: fopen
      Src: /src/ndpi/tests/dga/dga_evaluate.c:75,1
    - Dst: printf
      Src: /src/ndpi/tests/dga/dga_evaluate.c:78,1
    - Dst: exit
      Src: /src/ndpi/tests/dga/dga_evaluate.c:79,1
    - Dst: ndpi_get_api_version
      Src: /src/ndpi/tests/dga/dga_evaluate.c:89,1
    - Dst: printf
      Src: /src/ndpi/tests/dga/dga_evaluate.c:90,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/tests/dga/dga_evaluate.c:95,1
    - Dst: assert
      Src: /src/ndpi/tests/dga/dga_evaluate.c:96,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/tests/dga/dga_evaluate.c:97,1
    - Dst: set_ndpi_debug_function
      Src: /src/ndpi/tests/dga/dga_evaluate.c:98,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/tests/dga/dga_evaluate.c:99,1
    - Dst: assert
      Src: /src/ndpi/tests/dga/dga_evaluate.c:100,1
    - Dst: fgets
      Src: /src/ndpi/tests/dga/dga_evaluate.c:103,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/tests/dga/dga_evaluate.c:106,1
    - Dst: printf
      Src: /src/ndpi/tests/dga/dga_evaluate.c:108,1
    - Dst: printf
      Src: /src/ndpi/tests/dga/dga_evaluate.c:113,1
    - Dst: fclose
      Src: /src/ndpi/tests/dga/dga_evaluate.c:117,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/tests/dga/dga_evaluate.c:118,1
    - Dst: printf
      Src: /src/ndpi/tests/dga/dga_evaluate.c:119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 121
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 121
    functionName: main
    functionSourceFile: /src/ndpi/tests/dga/dga_evaluate.c
    functionUses: 0
    functionsReached:
    - printf
    - set_ndpi_debug_function
    - ndpi_get_api_version
    - fopen
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_check_dga_name
    - exit
    - fclose
    - assert
    - help
    - ndpi_set_config
    - fgets
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: timeval2usec
    functionSourceFile: /src/ndpi/tests/performance/patriciasearch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t timeval2usec(const struct timeval *tv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/patriciasearch.c:32,1
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/patriciasearch.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - struct timeval*
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: tdiff2sec
    functionSourceFile: /src/ndpi/tests/performance/patriciasearch.c
    functionUses: 0
    functionsReached:
    - timeval2usec
    linkageType: ''
    returnType: float
    signature: float tdiff2sec(const struct timeval *begin, const struct timeval *end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/tests/performance/patriciasearch.c:42,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/patriciasearch.c:55,1
    - Dst: assert
      Src: /src/ndpi/tests/performance/patriciasearch.c:59,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/tests/performance/patriciasearch.c:59,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/patriciasearch.c:61,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/patriciasearch.c:63,1
    - Dst: getline
      Src: /src/ndpi/tests/performance/patriciasearch.c:65,1
    - Dst: strlen
      Src: /src/ndpi/tests/performance/patriciasearch.c:67,1
    - Dst: inet_addr
      Src: /src/ndpi/tests/performance/patriciasearch.c:71,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/tests/performance/patriciasearch.c:72,1
    - Dst: assert
      Src: /src/ndpi/tests/performance/patriciasearch.c:73,1
    - Dst: ndpi_patricia_lookup
      Src: /src/ndpi/tests/performance/patriciasearch.c:73,1
    - Dst: fclose
      Src: /src/ndpi/tests/performance/patriciasearch.c:77,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/patriciasearch.c:79,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/patriciasearch.c:81,1
    - Dst: tdiff2sec
      Src: /src/ndpi/tests/performance/patriciasearch.c:82,1
    - Dst: ndpi_get_tot_allocated_memory
      Src: /src/ndpi/tests/performance/patriciasearch.c:83,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/patriciasearch.c:85,1
    - Dst: inet_addr
      Src: /src/ndpi/tests/performance/patriciasearch.c:90,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/tests/performance/patriciasearch.c:91,1
    - Dst: assert
      Src: /src/ndpi/tests/performance/patriciasearch.c:95,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/tests/performance/patriciasearch.c:95,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/patriciasearch.c:96,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/patriciasearch.c:98,1
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/patriciasearch.c:99,1
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/patriciasearch.c:99,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/tests/performance/patriciasearch.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 104
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 104
    functionName: main
    functionSourceFile: /src/ndpi/tests/performance/patriciasearch.c
    functionUses: 0
    functionsReached:
    - getline
    - printf
    - ndpi_get_tot_allocated_memory
    - ndpi_patricia_search_best
    - tdiff2sec
    - timeval2usec
    - ndpi_patricia_new
    - fclose
    - fopen
    - ndpi_patricia_lookup
    - inet_addr
    - assert
    - ndpi_fill_prefix_v4
    - ndpi_patricia_destroy
    - gettimeofday
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/ndpi/tests/performance/strnstr.cpp:18,1
    - Dst: strncmp
      Src: /src/ndpi/tests/performance/strnstr.cpp:26,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - s
    - find
    - slen
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 31
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 31
    functionName: ndpi_strnstr
    functionSourceFile: /src/ndpi/tests/performance/strnstr.cpp
    functionUses: 0
    functionsReached:
    - strncmp
    - strnlen
    linkageType: ''
    returnType: char
    signature: char *ndpi_strnstr(const char *s, const char *find, size_t slen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/ndpi/tests/performance/strnstr.cpp:50,1
    - Dst: memchr
      Src: /src/ndpi/tests/performance/strnstr.cpp:57,1
    - Dst: memcmp
      Src: /src/ndpi/tests/performance/strnstr.cpp:64,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - haystack
    - needle
    - len
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 72
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 72
    functionName: ndpi_strnstr_opt
    functionSourceFile: /src/ndpi/tests/performance/strnstr.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - memchr
    linkageType: ''
    returnType: char
    signature: char *ndpi_strnstr_opt(const char *haystack, const char *needle, size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/ndpi/tests/performance/strnstr.cpp:88,1
    - Dst: memchr
      Src: /src/ndpi/tests/performance/strnstr.cpp:100,1
    - Dst: memcmp
      Src: /src/ndpi/tests/performance/strnstr.cpp:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - haystack
    - needle
    - length_limit
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 114
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 114
    functionName: ndpi_strnstr_opt2
    functionSourceFile: /src/ndpi/tests/performance/strnstr.cpp
    functionUses: 0
    functionsReached:
    - memcmp
    - memchr
    linkageType: ''
    returnType: char
    signature: char * ndpi_strnstr_opt2(const char* haystack, const char* needle,
      size_t length_limit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/ndpi/tests/performance/strnstr.cpp:120,1
    - Dst: dis
      Src: /src/ndpi/tests/performance/strnstr.cpp:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - length
    - gen
    argTypes:
    - size_t
    - std::mt19937
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: random_string
    functionSourceFile: /src/ndpi/tests/performance/strnstr.cpp
    functionUses: 0
    functionsReached:
    - static_cast<char>
    - dis
    linkageType: ''
    returnType: std::string
    signature: std::string random_string(size_t length, std::mt19937 &gen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::chrono::high_resolution_clock::now
      Src: /src/ndpi/tests/performance/strnstr.cpp:128,1
    - Dst: strnstr_impl
      Src: /src/ndpi/tests/performance/strnstr.cpp:131,1
    - Dst: std::string::c_str
      Src: /src/ndpi/tests/performance/strnstr.cpp:131,1
    - Dst: std::string::c_str
      Src: /src/ndpi/tests/performance/strnstr.cpp:131,1
    - Dst: std::string::size
      Src: /src/ndpi/tests/performance/strnstr.cpp:131,1
    - Dst: std::chrono::high_resolution_clock::now
      Src: /src/ndpi/tests/performance/strnstr.cpp:132,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/ndpi/tests/performance/strnstr.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - strnstr_impl
    - haystack
    - needle
    argTypes:
    - "std::function<char *(const char *, const char *,\n                                               size_t)>"
    - std::string
    - std::string
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: measure_time
    functionSourceFile: /src/ndpi/tests/performance/strnstr.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - std::chrono::high_resolution_clock::now
    - std::string::size
    - strnstr_impl
    linkageType: ''
    returnType: double
    signature: "double measure_time(const std::function<char *(const char *, const
      char *,\n                                               size_t)> &strnstr_impl,\n
      \                   const std::string &haystack, const std::string &needle)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strnstr_impl
      Src: /src/ndpi/tests/performance/strnstr.cpp:144,1
    - Dst: std::string::c_str
      Src: /src/ndpi/tests/performance/strnstr.cpp:144,1
    - Dst: std::string::c_str
      Src: /src/ndpi/tests/performance/strnstr.cpp:144,1
    - Dst: std::string::size
      Src: /src/ndpi/tests/performance/strnstr.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - strnstr_impl
    - haystack
    - needle
    - iterations
    argTypes:
    - std::function<char *(const char *, const char *, size_t)>
    - std::string
    - std::string
    - int
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: warm_up
    functionSourceFile: /src/ndpi/tests/performance/strnstr.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - std::string::size
    - strnstr_impl
    linkageType: ''
    returnType: void
    signature: "void warm_up(const std::function<char *(const char *, const char *,
      size_t)>\n                 &strnstr_impl,\n             const std::string &haystack,
      const std::string &needle,\n             int iterations)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<double>::size
      Src: /src/ndpi/tests/performance/strnstr.cpp:149,1
    - Dst: std::accumulate
      Src: /src/ndpi/tests/performance/strnstr.cpp:150,1
    - Dst: std::vector<double>::begin
      Src: /src/ndpi/tests/performance/strnstr.cpp:150,1
    - Dst: std::vector<double>::end
      Src: /src/ndpi/tests/performance/strnstr.cpp:150,1
    - Dst: static_cast<double>
      Src: /src/ndpi/tests/performance/strnstr.cpp:151,1
    - Dst: std::vector<double>::size
      Src: /src/ndpi/tests/performance/strnstr.cpp:151,1
    - Dst: std::sort
      Src: /src/ndpi/tests/performance/strnstr.cpp:155,1
    - Dst: auto::begin
      Src: /src/ndpi/tests/performance/strnstr.cpp:155,1
    - Dst: auto::end
      Src: /src/ndpi/tests/performance/strnstr.cpp:155,1
    - Dst: auto::erase
      Src: /src/ndpi/tests/performance/strnstr.cpp:156,1
    - Dst: auto::begin
      Src: /src/ndpi/tests/performance/strnstr.cpp:156,1
    - Dst: auto::pop_back
      Src: /src/ndpi/tests/performance/strnstr.cpp:157,1
    - Dst: std::accumulate
      Src: /src/ndpi/tests/performance/strnstr.cpp:159,1
    - Dst: auto::begin
      Src: /src/ndpi/tests/performance/strnstr.cpp:159,1
    - Dst: auto::end
      Src: /src/ndpi/tests/performance/strnstr.cpp:159,1
    - Dst: auto::size
      Src: /src/ndpi/tests/performance/strnstr.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - times
    argTypes:
    - std::vector<double>
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: average_without_extremes
    functionSourceFile: /src/ndpi/tests/performance/strnstr.cpp
    functionUses: 0
    functionsReached:
    - auto::erase
    - static_cast<double>
    - std::sort
    - auto::begin
    - auto::pop_back
    - auto::size
    - std::vector<double>::end
    - std::accumulate
    - std::vector<double>::size
    - std::vector<double>::begin
    - auto::end
    linkageType: ''
    returnType: double
    signature: double average_without_extremes(const std::vector<double> &times)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::ios_base::sync_with_stdio
      Src: /src/ndpi/tests/performance/strnstr.cpp:164,1
    - Dst: random_string
      Src: /src/ndpi/tests/performance/strnstr.cpp:189,1
    - Dst: random_string
      Src: /src/ndpi/tests/performance/strnstr.cpp:190,1
    - Dst: warm_up
      Src: /src/ndpi/tests/performance/strnstr.cpp:195,1
    - Dst: std::vector::push_back
      Src: /src/ndpi/tests/performance/strnstr.cpp:199,1
    - Dst: measure_time
      Src: /src/ndpi/tests/performance/strnstr.cpp:199,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 228
    functionName: main
    functionSourceFile: /src/ndpi/tests/performance/strnstr.cpp
    functionUses: 0
    functionsReached:
    - std::ios_base::sync_with_stdio
    - measure_time
    - warm_up
    - std::vector::push_back
    - random_string
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/ndpi/tests/performance/gcrypt.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: ndpi_malloc
    functionSourceFile: /src/ndpi/tests/performance/gcrypt.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void * ndpi_malloc(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/ndpi/tests/performance/gcrypt.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - unsigned long
    - size_t
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: ndpi_calloc
    functionSourceFile: /src/ndpi/tests/performance/gcrypt.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void * ndpi_calloc(unsigned long count, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/ndpi/tests/performance/gcrypt.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: ndpi_free
    functionSourceFile: /src/ndpi/tests/performance/gcrypt.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ndpi_free(void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/ndpi/tests/performance/gcrypt.c:101,1
    - Dst: abort
      Src: /src/ndpi/tests/performance/gcrypt.c:102,1
    - Dst: gcry_md_reset
      Src: /src/ndpi/tests/performance/gcrypt.c:103,1
    - Dst: gcry_md_setkey
      Src: /src/ndpi/tests/performance/gcrypt.c:104,1
    - Dst: abort
      Src: /src/ndpi/tests/performance/gcrypt.c:105,1
    - Dst: gcry_md_write
      Src: /src/ndpi/tests/performance/gcrypt.c:106,1
    - Dst: memcpy
      Src: /src/ndpi/tests/performance/gcrypt.c:107,1
    - Dst: gcry_md_read
      Src: /src/ndpi/tests/performance/gcrypt.c:107,1
    - Dst: gcry_md_get_algo_dlen
      Src: /src/ndpi/tests/performance/gcrypt.c:107,1
    - Dst: gcry_md_close
      Src: /src/ndpi/tests/performance/gcrypt.c:108,1
    - Dst: memcmp
      Src: /src/ndpi/tests/performance/gcrypt.c:109,1
    - Dst: abort
      Src: /src/ndpi/tests/performance/gcrypt.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 111
    functionName: test_md
    functionSourceFile: /src/ndpi/tests/performance/gcrypt.c
    functionUses: 0
    functionsReached:
    - memcpy
    - gcry_md_get_algo_dlen
    - gcry_md_reset
    - gcry_md_open
    - gcry_md_close
    - memcmp
    - gcry_md_setkey
    - gcry_md_read
    - gcry_md_write
    - abort
    linkageType: ''
    returnType: void
    signature: void test_md(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcry_cipher_open
      Src: /src/ndpi/tests/performance/gcrypt.c:124,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:125,1
    - Dst: gcry_cipher_setkey
      Src: /src/ndpi/tests/performance/gcrypt.c:126,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:127,1
    - Dst: gcry_cipher_encrypt
      Src: /src/ndpi/tests/performance/gcrypt.c:128,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:130,1
    - Dst: memcmp
      Src: /src/ndpi/tests/performance/gcrypt.c:133,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/gcrypt.c:136,1
    - Dst: abort
      Src: /src/ndpi/tests/performance/gcrypt.c:137,1
    - Dst: gcry_cipher_close
      Src: /src/ndpi/tests/performance/gcrypt.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 141
    functionName: single_encryption1
    functionSourceFile: /src/ndpi/tests/performance/gcrypt.c
    functionUses: 0
    functionsReached:
    - gcry_cipher_close
    - printf
    - memcmp
    - gcr_err
    - gcry_cipher_open
    - gcry_cipher_setkey
    - gcry_cipher_encrypt
    - abort
    linkageType: ''
    returnType: void
    signature: void single_encryption1(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcry_cipher_open
      Src: /src/ndpi/tests/performance/gcrypt.c:149,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:150,1
    - Dst: gcry_cipher_setkey
      Src: /src/ndpi/tests/performance/gcrypt.c:151,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:152,1
    - Dst: gcry_cipher_reset
      Src: /src/ndpi/tests/performance/gcrypt.c:153,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:154,1
    - Dst: gcry_cipher_setiv
      Src: /src/ndpi/tests/performance/gcrypt.c:155,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:156,1
    - Dst: gcry_cipher_authenticate
      Src: /src/ndpi/tests/performance/gcrypt.c:157,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:158,1
    - Dst: gcry_cipher_decrypt
      Src: /src/ndpi/tests/performance/gcrypt.c:159,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:161,1
    - Dst: memcmp
      Src: /src/ndpi/tests/performance/gcrypt.c:163,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/gcrypt.c:166,1
    - Dst: abort
      Src: /src/ndpi/tests/performance/gcrypt.c:167,1
    - Dst: gcry_cipher_checktag
      Src: /src/ndpi/tests/performance/gcrypt.c:170,1
    - Dst: gcr_err
      Src: /src/ndpi/tests/performance/gcrypt.c:171,1
    - Dst: gcry_cipher_close
      Src: /src/ndpi/tests/performance/gcrypt.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 176
    functionName: single_encryption2
    functionSourceFile: /src/ndpi/tests/performance/gcrypt.c
    functionUses: 0
    functionsReached:
    - gcry_cipher_authenticate
    - abort
    - gcry_cipher_close
    - printf
    - gcry_cipher_reset
    - memcmp
    - gcr_err
    - gcry_cipher_decrypt
    - gcry_cipher_open
    - gcry_cipher_setkey
    - gcry_cipher_checktag
    - gcry_cipher_setiv
    linkageType: ''
    returnType: void
    signature: void single_encryption2(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: timeval2usec
    functionSourceFile: /src/ndpi/tests/performance/gcrypt.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t timeval2usec(const struct timeval *tv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/gcrypt.c:183,1
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/gcrypt.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - struct timeval*
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: tdiff2sec
    functionSourceFile: /src/ndpi/tests/performance/gcrypt.c
    functionUses: 1
    functionsReached:
    - timeval2usec
    linkageType: ''
    returnType: int
    signature: int tdiff2sec(const struct timeval *begin, const struct timeval *end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/gcrypt.c:194,1
    - Dst: test_md
      Src: /src/ndpi/tests/performance/gcrypt.c:196,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/gcrypt.c:198,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/gcrypt.c:199,1
    - Dst: tdiff2sec
      Src: /src/ndpi/tests/performance/gcrypt.c:199,1
    - Dst: fflush
      Src: /src/ndpi/tests/performance/gcrypt.c:199,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/gcrypt.c:201,1
    - Dst: single_encryption1
      Src: /src/ndpi/tests/performance/gcrypt.c:203,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/gcrypt.c:205,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/gcrypt.c:206,1
    - Dst: tdiff2sec
      Src: /src/ndpi/tests/performance/gcrypt.c:206,1
    - Dst: fflush
      Src: /src/ndpi/tests/performance/gcrypt.c:206,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/gcrypt.c:208,1
    - Dst: single_encryption2
      Src: /src/ndpi/tests/performance/gcrypt.c:210,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/gcrypt.c:212,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/gcrypt.c:213,1
    - Dst: tdiff2sec
      Src: /src/ndpi/tests/performance/gcrypt.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 216
    functionName: main
    functionSourceFile: /src/ndpi/tests/performance/gcrypt.c
    functionUses: 0
    functionsReached:
    - printf
    - single_encryption1
    - tdiff2sec
    - test_md
    - fflush
    - single_encryption2
    - gettimeofday
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: timeval2usec
    functionSourceFile: /src/ndpi/tests/performance/substringsearch.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t timeval2usec(const struct timeval *tv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/substringsearch.c:32,1
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/substringsearch.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - struct timeval*
    - struct timeval*
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: tdiff2sec
    functionSourceFile: /src/ndpi/tests/performance/substringsearch.c
    functionUses: 2
    functionsReached:
    - timeval2usec
    linkageType: ''
    returnType: float
    signature: float tdiff2sec(const struct timeval *begin, const struct timeval *end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/tests/performance/substringsearch.c:42,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/substringsearch.c:52,1
    - Dst: assert
      Src: /src/ndpi/tests/performance/substringsearch.c:55,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/substringsearch.c:57,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/substringsearch.c:59,1
    - Dst: getline
      Src: /src/ndpi/tests/performance/substringsearch.c:61,1
    - Dst: strtok
      Src: /src/ndpi/tests/performance/substringsearch.c:64,1
    - Dst: strlen
      Src: /src/ndpi/tests/performance/substringsearch.c:67,1
    - Dst: assert
      Src: /src/ndpi/tests/performance/substringsearch.c:71,1
    - Dst: ndpi_add_string_to_automa
      Src: /src/ndpi/tests/performance/substringsearch.c:71,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/tests/performance/substringsearch.c:71,1
    - Dst: fclose
      Src: /src/ndpi/tests/performance/substringsearch.c:78,1
    - Dst: ndpi_finalize_automa
      Src: /src/ndpi/tests/performance/substringsearch.c:80,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/substringsearch.c:82,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/substringsearch.c:84,1
    - Dst: tdiff2sec
      Src: /src/ndpi/tests/performance/substringsearch.c:85,1
    - Dst: ndpi_get_tot_allocated_memory
      Src: /src/ndpi/tests/performance/substringsearch.c:86,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/substringsearch.c:88,1
    - Dst: assert
      Src: /src/ndpi/tests/performance/substringsearch.c:90,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/tests/performance/substringsearch.c:90,1
    - Dst: gettimeofday
      Src: /src/ndpi/tests/performance/substringsearch.c:91,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/substringsearch.c:93,1
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/substringsearch.c:94,1
    - Dst: timeval2usec
      Src: /src/ndpi/tests/performance/substringsearch.c:94,1
    - Dst: ndpi_free_automa
      Src: /src/ndpi/tests/performance/substringsearch.c:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 99
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 99
    functionName: main
    functionSourceFile: /src/ndpi/tests/performance/substringsearch.c
    functionUses: 0
    functionsReached:
    - getline
    - printf
    - ndpi_get_tot_allocated_memory
    - timeval2usec
    - tdiff2sec
    - ndpi_strdup
    - fclose
    - fopen
    - ndpi_finalize_automa
    - strtok
    - ndpi_match_string
    - assert
    - ndpi_free_automa
    - ndpi_add_string_to_automa
    - gettimeofday
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/tests/performance/geo.c:9,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/tests/performance/geo.c:13,1
    - Dst: ndpi_load_geoip
      Src: /src/ndpi/tests/performance/geo.c:15,1
    - Dst: fprintf
      Src: /src/ndpi/tests/performance/geo.c:17,1
    - Dst: ndpi_get_geoip_country_continent_city
      Src: /src/ndpi/tests/performance/geo.c:27,1
    - Dst: ndpi_get_geoip_aso
      Src: /src/ndpi/tests/performance/geo.c:28,1
    - Dst: ndpi_get_geoip_asn
      Src: /src/ndpi/tests/performance/geo.c:29,1
    - Dst: printf
      Src: /src/ndpi/tests/performance/geo.c:30,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/tests/performance/geo.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 36
    functionName: main
    functionSourceFile: /src/ndpi/tests/performance/geo.c
    functionUses: 0
    functionsReached:
    - ndpi_get_geoip_country_continent_city
    - fprintf
    - printf
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_get_geoip_asn
    - ndpi_get_geoip_aso
    - ndpi_load_geoip
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/tests/unit/unit.c:73,1
    - Dst: memset
      Src: /src/ndpi/tests/unit/unit.c:74,1
    - Dst: memset
      Src: /src/ndpi/tests/unit/unit.c:75,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:80,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:85,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:90,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:94,1
    - Dst: ndpi_init_serializer
      Src: /src/ndpi/tests/unit/unit.c:94,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/tests/unit/unit.c:99,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:100,1
    - Dst: ndpi_serialize_uint32_uint32
      Src: /src/ndpi/tests/unit/unit.c:100,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:101,1
    - Dst: ndpi_serialize_uint32_string
      Src: /src/ndpi/tests/unit/unit.c:101,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/tests/unit/unit.c:102,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:103,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/tests/unit/unit.c:103,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/tests/unit/unit.c:104,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:105,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/tests/unit/unit.c:105,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/tests/unit/unit.c:106,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:107,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/tests/unit/unit.c:107,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/tests/unit/unit.c:109,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:110,1
    - Dst: ndpi_serialize_string_double
      Src: /src/ndpi/tests/unit/unit.c:110,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/tests/unit/unit.c:112,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:113,1
    - Dst: ndpi_serialize_string_int64
      Src: /src/ndpi/tests/unit/unit.c:113,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:114,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/tests/unit/unit.c:114,1
    - Dst: ndpi_serialize_end_of_record
      Src: /src/ndpi/tests/unit/unit.c:115,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:119,1
    - Dst: ndpi_serialize_start_of_list
      Src: /src/ndpi/tests/unit/unit.c:119,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/tests/unit/unit.c:123,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/tests/unit/unit.c:124,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:125,1
    - Dst: ndpi_serialize_uint32_uint32
      Src: /src/ndpi/tests/unit/unit.c:125,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:126,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/tests/unit/unit.c:126,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:127,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/tests/unit/unit.c:127,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:129,1
    - Dst: ndpi_serialize_end_of_list
      Src: /src/ndpi/tests/unit/unit.c:129,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:130,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/tests/unit/unit.c:130,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/tests/unit/unit.c:132,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:135,1
    - Dst: json_tokener_parse_verbose
      Src: /src/ndpi/tests/unit/unit.c:139,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:141,1
    - Dst: json_tokener_error_desc
      Src: /src/ndpi/tests/unit/unit.c:142,1
    - Dst: json_object_put
      Src: /src/ndpi/tests/unit/unit.c:146,1
    - Dst: ndpi_serializer_get_header
      Src: /src/ndpi/tests/unit/unit.c:153,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:154,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/tests/unit/unit.c:157,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:158,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:163,1
    - Dst: ndpi_serializer_get_buffer_len
      Src: /src/ndpi/tests/unit/unit.c:163,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:165,1
    - Dst: ndpi_init_deserializer
      Src: /src/ndpi/tests/unit/unit.c:165,1
    - Dst: ndpi_deserialize_get_item_type
      Src: /src/ndpi/tests/unit/unit.c:170,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:175,1
    - Dst: ndpi_deserialize_key_uint32
      Src: /src/ndpi/tests/unit/unit.c:185,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:186,1
    - Dst: ndpi_deserialize_key_string
      Src: /src/ndpi/tests/unit/unit.c:189,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:193,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:198,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:204,1
    - Dst: ndpi_deserialize_value_uint32
      Src: /src/ndpi/tests/unit/unit.c:204,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:205,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:209,1
    - Dst: ndpi_deserialize_value_int64
      Src: /src/ndpi/tests/unit/unit.c:209,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:210,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:214,1
    - Dst: ndpi_deserialize_value_string
      Src: /src/ndpi/tests/unit/unit.c:214,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:218,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:224,1
    - Dst: ndpi_deserialize_value_float
      Src: /src/ndpi/tests/unit/unit.c:224,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:225,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:229,1
    - Dst: ndpi_deserialize_value_double
      Src: /src/ndpi/tests/unit/unit.c:229,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:230,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:234,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:235,1
    - Dst: ndpi_deserialize_next
      Src: /src/ndpi/tests/unit/unit.c:240,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:245,1
    - Dst: ndpi_init_deserializer
      Src: /src/ndpi/tests/unit/unit.c:245,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:246,1
    - Dst: ndpi_init_serializer
      Src: /src/ndpi/tests/unit/unit.c:246,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:247,1
    - Dst: ndpi_deserialize_clone_all
      Src: /src/ndpi/tests/unit/unit.c:247,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/tests/unit/unit.c:249,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:251,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/tests/unit/unit.c:253,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/tests/unit/unit.c:256,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:259,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 156
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 261
    functionName: serializerUnitTest
    functionSourceFile: /src/ndpi/tests/unit/unit.c
    functionUses: 0
    functionsReached:
    - ndpi_deserialize_value_double
    - memset
    - json_object_put
    - ndpi_serializer_get_buffer_len
    - ndpi_serialize_uint32_uint32
    - ndpi_serialize_end_of_list
    - ndpi_deserialize_get_item_type
    - ndpi_serializer_get_buffer
    - ndpi_deserialize_key_string
    - ndpi_serialize_uint32_string
    - ndpi_serialize_start_of_list
    - ndpi_deserialize_clone_all
    - json_tokener_error_desc
    - ndpi_term_serializer
    - ndpi_deserialize_value_int64
    - ndpi_deserialize_key_uint32
    - ndpi_serialize_string_double
    - ndpi_init_serializer
    - assert
    - ndpi_deserialize_value_uint32
    - ndpi_snprintf
    - ndpi_deserialize_next
    - ndpi_serialize_string_string
    - ndpi_deserialize_value_string
    - printf
    - ndpi_serialize_end_of_record
    - ndpi_serializer_get_header
    - ndpi_serialize_string_float
    - ndpi_serialize_string_int64
    - json_tokener_parse_verbose
    - ndpi_deserialize_value_float
    - ndpi_serialize_string_uint32
    - ndpi_init_deserializer
    linkageType: ''
    returnType: int
    signature: int serializerUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:276,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:281,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:286,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:290,1
    - Dst: ndpi_init_serializer
      Src: /src/ndpi/tests/unit/unit.c:290,1
    - Dst: NDPI_SET_BIT
      Src: /src/ndpi/tests/unit/unit.c:300,1
    - Dst: NDPI_SET_BIT
      Src: /src/ndpi/tests/unit/unit.c:301,1
    - Dst: NDPI_SET_BIT
      Src: /src/ndpi/tests/unit/unit.c:302,1
    - Dst: NDPI_SET_BIT
      Src: /src/ndpi/tests/unit/unit.c:303,1
    - Dst: ndpi_serialize_proto
      Src: /src/ndpi/tests/unit/unit.c:304,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:305,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/tests/unit/unit.c:305,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:307,1
    - Dst: ndpi_serialize_string_double
      Src: /src/ndpi/tests/unit/unit.c:307,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/tests/unit/unit.c:312,1
    - Dst: strncmp
      Src: /src/ndpi/tests/unit/unit.c:316,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:318,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:319,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:325,1
    - Dst: json_tokener_parse_verbose
      Src: /src/ndpi/tests/unit/unit.c:329,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:331,1
    - Dst: json_tokener_error_desc
      Src: /src/ndpi/tests/unit/unit.c:332,1
    - Dst: json_object_put
      Src: /src/ndpi/tests/unit/unit.c:336,1
    - Dst: ndpi_serializer_get_header
      Src: /src/ndpi/tests/unit/unit.c:342,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:343,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:345,1
    - Dst: strncmp
      Src: /src/ndpi/tests/unit/unit.c:346,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:348,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:349,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/tests/unit/unit.c:354,1
    - Dst: assert
      Src: /src/ndpi/tests/unit/unit.c:355,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:357,1
    - Dst: strncmp
      Src: /src/ndpi/tests/unit/unit.c:358,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:360,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:361,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/tests/unit/unit.c:365,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:368,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 371
    functionName: serializeProtoUnitTest
    functionSourceFile: /src/ndpi/tests/unit/unit.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_get_buffer
    - strncmp
    - json_object_put
    - printf
    - ndpi_serialize_proto
    - ndpi_serializer_get_header
    - ndpi_serialize_string_float
    - json_tokener_parse_verbose
    - ndpi_serialize_string_double
    - ndpi_init_serializer
    - assert
    - NDPI_SET_BIT
    - json_tokener_error_desc
    - ndpi_term_serializer
    linkageType: ''
    returnType: int
    signature: int serializeProtoUnitTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_api_version
      Src: /src/ndpi/tests/unit/unit.c:382,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:383,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/tests/unit/unit.c:387,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/tests/unit/unit.c:392,1
    - Dst: getopt
      Src: /src/ndpi/tests/unit/unit.c:399,1
    - Dst: printf
      Src: /src/ndpi/tests/unit/unit.c:406,1
    - Dst: serializerUnitTest
      Src: /src/ndpi/tests/unit/unit.c:415,1
    - Dst: serializeProtoUnitTest
      Src: /src/ndpi/tests/unit/unit.c:416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 419
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 419
    functionName: main
    functionSourceFile: /src/ndpi/tests/unit/unit.c
    functionUses: 0
    functionsReached:
    - serializerUnitTest
    - printf
    - getopt
    - ndpi_get_api_version
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - serializeProtoUnitTest
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/influxdb/metric_anomaly.c:33,1
    - Dst: printf
      Src: /src/ndpi/influxdb/metric_anomaly.c:43,1
    - Dst: exit
      Src: /src/ndpi/influxdb/metric_anomaly.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: help
    functionSourceFile: /src/ndpi/influxdb/metric_anomaly.c
    functionUses: 1
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void help()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/ndpi/influxdb/metric_anomaly.c:63,1
    - Dst: printf
      Src: /src/ndpi/influxdb/metric_anomaly.c:74,1
    - Dst: help
      Src: /src/ndpi/influxdb/metric_anomaly.c:99,1
    - Dst: help
      Src: /src/ndpi/influxdb/metric_anomaly.c:105,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/influxdb/metric_anomaly.c:107,1
    - Dst: printf
      Src: /src/ndpi/influxdb/metric_anomaly.c:109,1
    - Dst: popen
      Src: /src/ndpi/influxdb/metric_anomaly.c:111,1
    - Dst: printf
      Src: /src/ndpi/influxdb/metric_anomaly.c:112,1
    - Dst: ndpi_ses_init
      Src: /src/ndpi/influxdb/metric_anomaly.c:116,1
    - Dst: fgets
      Src: /src/ndpi/influxdb/metric_anomaly.c:118,1
    - Dst: sscanf
      Src: /src/ndpi/influxdb/metric_anomaly.c:126,1
    - Dst: ndpi_ses_add_value
      Src: /src/ndpi/influxdb/metric_anomaly.c:132,1
    - Dst: ndpi_max
      Src: /src/ndpi/influxdb/metric_anomaly.c:135,1
    - Dst: ndpi_max
      Src: /src/ndpi/influxdb/metric_anomaly.c:135,1
    - Dst: localtime
      Src: /src/ndpi/influxdb/metric_anomaly.c:141,1
    - Dst: strftime
      Src: /src/ndpi/influxdb/metric_anomaly.c:143,1
    - Dst: printf
      Src: /src/ndpi/influxdb/metric_anomaly.c:147,1
    - Dst: printf
      Src: /src/ndpi/influxdb/metric_anomaly.c:152,1
    - Dst: printf
      Src: /src/ndpi/influxdb/metric_anomaly.c:156,1
    - Dst: pclose
      Src: /src/ndpi/influxdb/metric_anomaly.c:163,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 166
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 166
    functionName: main
    functionSourceFile: /src/ndpi/influxdb/metric_anomaly.c
    functionUses: 0
    functionsReached:
    - ndpi_ses_init
    - printf
    - ndpi_max
    - getopt
    - ndpi_ses_add_value
    - pclose
    - strftime
    - help
    - fgets
    - localtime
    - popen
    - ndpi_snprintf
    - sscanf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 326
    functionName: ndpi_chdlc
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_chdlc
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 339
    functionName: ndpi_slarp
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_slarp
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 350
    functionName: ndpi_cdp
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_cdp
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: ndpi_ethhdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_ethhdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 374
    functionName: ndpi_arphdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_arphdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 395
    functionName: ndpi_dhcphdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_dhcphdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 403
    functionName: ndpi_mdns_rsp_entry
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_mdns_rsp_entry
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: ndpi_snap_extension
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_snap_extension
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 422
    functionName: ndpi_llc_header_snap
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_llc_header_snap
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 434
    functionName: ndpi_radiotap_header
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_radiotap_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 447
    functionName: ndpi_wifi_header
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_wifi_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 463
    functionName: ndpi_mpls_header
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_mpls_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 485
    functionName: ndpi_iphdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_iphdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 498
    functionName: ndpi_in6_addr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_in6_addr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 506
    functionName: ndpi_ip6_hdrctl
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_ip6_hdrctl
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: ndpi_ipv6hdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_ipv6hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 534
    functionName: ndpi_tcphdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_tcphdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 545
    functionName: ndpi_udphdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_udphdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 555
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 555
    functionName: ndpi_dns_packet_header
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_dns_packet_header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 577
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 577
    functionName: ndpi_icmphdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_icmphdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: ndpi_icmp6hdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_icmp6hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 601
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 601
    functionName: ndpi_vxlanhdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_vxlanhdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: ndpi_gre_basehdr
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_gre_basehdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 672
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 672
    functionName: ndpi_binary_bitmap_entry
    functionSourceFile: /src/ndpi/src/include/ndpi_typedefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_binary_bitmap_entry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_domains.c:37,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_domains.c:42,1
    - Dst: ndpi_hash_free
      Src: /src/ndpi/src/lib/ndpi_domains.c:43,1
    - Dst: ndpi_hash_init
      Src: /src/ndpi/src/lib/ndpi_domains.c:46,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_domains.c:47,1
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_domains.c:51,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/ndpi_domains.c:55,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domains.c:67,1
    - Dst: ndpi_hash_add_entry
      Src: /src/ndpi/src/lib/ndpi_domains.c:71,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domains.c:72,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_domains.c:74,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_domains.c:79,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_domains.c:82,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 2
    argNames:
    - ndpi_str
    - public_suffix_list_path
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 85
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 85
    functionName: ndpi_load_domain_suffixes
    functionSourceFile: /src/ndpi/src/lib/ndpi_domains.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_free
    - ndpi_hash_init
    - NDPI_LOG_ERR
    - ndpi_hash_add_entry
    - fclose
    - fopen
    - NDPI_LOG_DBG
    - strstr
    - fgets
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_domain_suffixes(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t      char *public_suffix_list_path)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_domains.c:108,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/src/lib/ndpi_domains.c:115,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domains.c:116,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - ndpi_str
    - hostname
    - domain_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 126
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 126
    functionName: ndpi_get_host_domain_suffix
    functionSourceFile: /src/ndpi/src/lib/ndpi_domains.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_find_entry
    - strrchr
    - strlen
    linkageType: ''
    returnType: char
    signature: "char * ndpi_get_host_domain_suffix(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\tconst char *hostname,\n\t\t\t\t\tu_int16_t *domain_id
      /* out */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domains.c:147,1
    - Dst: isdigit
      Src: /src/ndpi/src/lib/ndpi_domains.c:153,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_domains.c:156,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/src/lib/ndpi_domains.c:163,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_domains.c:168,1
    - Dst: ndpi_strrstr
      Src: /src/ndpi/src/lib/ndpi_domains.c:171,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 2
    argNames:
    - ndpi_str
    - hostname
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 185
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 185
    functionName: ndpi_get_host_domain
    functionSourceFile: /src/ndpi/src/lib/ndpi_domains.c
    functionUses: 0
    functionsReached:
    - isdigit
    - ndpi_get_host_domain_suffix
    - ndpi_strrstr
    - strcmp
    - strchr
    - strlen
    linkageType: ''
    returnType: char
    signature: "char * ndpi_get_host_domain(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t\t
      const char *hostname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_cache.c:40,1
    - Dst: pthread_mutex_init
      Src: /src/ndpi/src/lib/ndpi_cache.c:50,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:51,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_cache.c:57,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - num_entries
    - ttl
    - shared
    argTypes:
    - u_int32_t
    - u_int32_t
    - int
    constantsTouched: []
    func_position:
      end: 66
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 66
    functionName: ndpi_lru_cache_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - pthread_mutex_init
    - ndpi_free
    linkageType: ''
    returnType: struct ndpi_lru_cache
    signature: struct ndpi_lru_cache *ndpi_lru_cache_init(u_int32_t num_entries, u_int32_t
      ttl, int shared)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:71,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct ndpi_lru_cache*
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: ndpi_lru_free_cache
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_lru_free_cache(struct ndpi_lru_cache *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/ndpi/src/lib/ndpi_cache.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct ndpi_lru_cache*
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: __lru_cache_lock
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void __lru_cache_lock(struct ndpi_lru_cache *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/ndpi/src/lib/ndpi_cache.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct ndpi_lru_cache*
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: __lru_cache_unlock
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void __lru_cache_unlock(struct ndpi_lru_cache *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash
      Src: /src/ndpi/src/lib/ndpi_cache.c:105,1
    - Dst: __lru_cache_lock
      Src: /src/ndpi/src/lib/ndpi_cache.c:108,1
    - Dst: __lru_cache_unlock
      Src: /src/ndpi/src/lib/ndpi_cache.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - c
    - key
    - value
    - clean_key_when_found
    - now_sec
    argTypes:
    - struct ndpi_lru_cache*
    - u_int64_t
    - u_int16_t*
    - u_int8_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: ndpi_lru_find_cache
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - __lru_cache_lock
    - ndpi_quick_hash
    - __lru_cache_unlock
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_lru_find_cache(struct ndpi_lru_cache *c, u_int64_t key,\n\t\t\t
      \    u_int16_t *value, u_int8_t clean_key_when_found, u_int32_t now_sec)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash
      Src: /src/ndpi/src/lib/ndpi_cache.c:132,1
    - Dst: __lru_cache_lock
      Src: /src/ndpi/src/lib/ndpi_cache.c:134,1
    - Dst: __lru_cache_unlock
      Src: /src/ndpi/src/lib/ndpi_cache.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - c
    - key
    - value
    - now_sec
    argTypes:
    - struct ndpi_lru_cache*
    - u_int64_t
    - u_int16_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: ndpi_lru_add_to_cache
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - __lru_cache_lock
    - ndpi_quick_hash
    - __lru_cache_unlock
    linkageType: ''
    returnType: void
    signature: void ndpi_lru_add_to_cache(struct ndpi_lru_cache *c, u_int64_t key,
      u_int16_t value, u_int32_t now_sec)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - c
    - stats
    argTypes:
    - struct ndpi_lru_cache*
    - struct ndpi_lru_cache_stats*
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: ndpi_lru_get_stats
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_lru_get_stats(struct ndpi_lru_cache *c, struct ndpi_lru_cache_stats
      *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_cache.c:172,1
    - Dst: ndpi_lru_cache_idx_to_name
      Src: /src/ndpi/src/lib/ndpi_cache.c:172,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/src/lib/ndpi_cache.c:173,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_cache.c:178,1
    - Dst: ndpi_lru_get_stats
      Src: /src/ndpi/src/lib/ndpi_cache.c:189,1
    - Dst: ndpi_lru_get_stats
      Src: /src/ndpi/src/lib/ndpi_cache.c:192,1
    - Dst: ndpi_lru_get_stats
      Src: /src/ndpi/src/lib/ndpi_cache.c:195,1
    - Dst: ndpi_lru_get_stats
      Src: /src/ndpi/src/lib/ndpi_cache.c:198,1
    - Dst: ndpi_lru_get_stats
      Src: /src/ndpi/src/lib/ndpi_cache.c:201,1
    - Dst: ndpi_lru_get_stats
      Src: /src/ndpi/src/lib/ndpi_cache.c:204,1
    - Dst: ndpi_lru_get_stats
      Src: /src/ndpi/src/lib/ndpi_cache.c:207,1
    - Dst: ndpi_lru_get_stats
      Src: /src/ndpi/src/lib/ndpi_cache.c:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 4
    argNames:
    - g_ctx
    - ndpi_struct
    - cache_type
    - stats
    argTypes:
    - struct ndpi_global_context*
    - struct ndpi_detection_module_struct*
    - lru_cache_type
    - struct ndpi_lru_cache_stats*
    constantsTouched: []
    func_position:
      end: 215
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 215
    functionName: ndpi_get_lru_cache_stats
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - atoi
    - ndpi_lru_cache_idx_to_name
    - ndpi_lru_get_stats
    - ndpi_get_config
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int ndpi_get_lru_cache_stats(struct ndpi_global_context *g_ctx,\n\t\t\t
      \    struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t     lru_cache_type
      cache_type,\n\t\t\t     struct ndpi_lru_cache_stats *stats)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_cache.c:221,1
    - Dst: ndpi_max
      Src: /src/ndpi/src/lib/ndpi_cache.c:227,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_cache.c:227,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_cache.c:228,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - max_num_entries
    argTypes:
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: ndpi_init_address_cache
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    - ndpi_min
    - ndpi_max
    - ndpi_malloc
    - ndpi_calloc
    linkageType: ''
    returnType: struct ndpi_address_cache
    signature: struct ndpi_address_cache * ndpi_init_address_cache(u_int32_t max_num_entries)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:240,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct ndpi_address_cache_item*
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: ndpi_free_addr_item
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_addr_item(struct ndpi_address_cache_item *addr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free_addr_item
      Src: /src/ndpi/src/lib/ndpi_cache.c:258,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:263,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cache
    argTypes:
    - struct ndpi_address_cache*
    constantsTouched: []
    func_position:
      end: 265
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 265
    functionName: ndpi_term_address_cache
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_free_addr_item
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_term_address_cache(struct ndpi_address_cache *cache)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free_addr_item
      Src: /src/ndpi/src/lib/ndpi_cache.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - cache
    - epoch_now
    argTypes:
    - struct ndpi_address_cache*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 304
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 304
    functionName: ndpi_address_cache_flush_expired
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_free_addr_item
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t ndpi_address_cache_flush_expired(struct ndpi_address_cache
      *cache,\n\t\t\t\t\t   u_int32_t epoch_now)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash
      Src: /src/ndpi/src/lib/ndpi_cache.c:311,1
    - Dst: ndpi_free_addr_item
      Src: /src/ndpi/src/lib/ndpi_cache.c:324,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/ndpi_cache.c:330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - cache
    - ip_addr
    - epoch_now
    argTypes:
    - struct ndpi_address_cache*
    - ndpi_ip_addr_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 339
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 339
    functionName: ndpi_address_cache_find
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ndpi_quick_hash
    - ndpi_free_addr_item
    linkageType: ''
    returnType: struct ndpi_address_cache_item
    signature: "struct ndpi_address_cache_item * ndpi_address_cache_find(struct ndpi_address_cache
      *cache,\n\t\t\t\t\t\t\tndpi_ip_addr_t ip_addr, u_int32_t epoch_now)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash
      Src: /src/ndpi/src/lib/ndpi_cache.c:347,1
    - Dst: time
      Src: /src/ndpi/src/lib/ndpi_cache.c:354,1
    - Dst: ndpi_address_cache_find
      Src: /src/ndpi/src/lib/ndpi_cache.c:355,1
    - Dst: ndpi_address_cache_flush_expired
      Src: /src/ndpi/src/lib/ndpi_cache.c:362,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_cache.c:372,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_cache.c:376,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_cache.c:380,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:381,1
    - Dst: ndpi_max
      Src: /src/ndpi/src/lib/ndpi_cache.c:389,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_cache.c:391,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_cache.c:397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - cache
    - ip_addr
    - hostname
    - epoch_now
    - ttl
    argTypes:
    - struct ndpi_address_cache*
    - ndpi_ip_addr_t
    - char*
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 405
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 405
    functionName: ndpi_address_cache_insert
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_free
    - ndpi_max
    - ndpi_strdup
    - ndpi_malloc
    - ndpi_address_cache_flush_expired
    - ndpi_quick_hash
    - time
    - strcmp
    - ndpi_address_cache_find
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_address_cache_insert(struct ndpi_address_cache *cache,\n\t\t\t
      \      ndpi_ip_addr_t ip_addr, char *hostname,\n\t\t\t       u_int32_t epoch_now,\n\t\t\t
      \      u_int32_t ttl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_cache.c:411,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_cache.c:430,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_cache.c:432,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_cache.c:438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - cache
    - path
    - epoch_now
    argTypes:
    - struct ndpi_address_cache*
    - char*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 440
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 440
    functionName: ndpi_address_cache_dump
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - fclose
    - snprintf
    - fprintf
    - fopen
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_address_cache_dump(struct ndpi_address_cache *cache,\n\t\t\t
      \    char *path, u_int32_t epoch_now)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_cache.c:446,1
    - Dst: fscanf
      Src: /src/ndpi/src/lib/ndpi_cache.c:452,1
    - Dst: strtol
      Src: /src/ndpi/src/lib/ndpi_cache.c:463,1
    - Dst: ndpi_address_cache_insert
      Src: /src/ndpi/src/lib/ndpi_cache.c:466,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_cache.c:471,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - cache
    - path
    - epoch_now
    argTypes:
    - struct ndpi_address_cache*
    - char*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 474
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 474
    functionName: ndpi_address_cache_restore
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - fscanf
    - fclose
    - fopen
    - ndpi_address_cache_insert
    - strtol
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_address_cache_restore(struct ndpi_address_cache *cache,
      char *path, u_int32_t epoch_now)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_address_cache
      Src: /src/ndpi/src/lib/ndpi_cache.c:485,1
    - Dst: ndpi_address_cache_insert
      Src: /src/ndpi/src/lib/ndpi_cache.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ndpi_struct
    - ip_addr
    - hostname
    - epoch_now
    - ttl
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_ip_addr_t
    - char*
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 491
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 491
    functionName: ndpi_cache_address
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_init_address_cache
    - ndpi_address_cache_insert
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_cache_address(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\tndpi_ip_addr_t
      ip_addr, char *hostname,\n\t\t\tu_int32_t epoch_now, u_int32_t ttl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_address_cache_find
      Src: /src/ndpi/src/lib/ndpi_cache.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - ip_addr
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_ip_addr_t
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: ndpi_cache_address_find
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_address_cache_find
    linkageType: ''
    returnType: struct ndpi_address_cache_item
    signature: "struct ndpi_address_cache_item * ndpi_cache_address_find(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t\t\tndpi_ip_addr_t ip_addr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_address_cache_dump
      Src: /src/ndpi/src/lib/ndpi_cache.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ndpi_struct
    - path
    - epoch_now
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: ndpi_cache_address_dump
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_address_cache_dump
    linkageType: ''
    returnType: bool
    signature: bool ndpi_cache_address_dump(struct ndpi_detection_module_struct *ndpi_struct,
      char *path, u_int32_t epoch_now)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_address_cache
      Src: /src/ndpi/src/lib/ndpi_cache.c:517,1
    - Dst: ndpi_address_cache_restore
      Src: /src/ndpi/src/lib/ndpi_cache.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ndpi_struct
    - path
    - epoch_now
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 522
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 522
    functionName: ndpi_cache_address_restore
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_init_address_cache
    - ndpi_address_cache_restore
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_cache_address_restore(struct ndpi_detection_module_struct
      *ndpi_struct, char *path, u_int32_t epoch_now)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_address_cache_flush_expired
      Src: /src/ndpi/src/lib/ndpi_cache.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - epoch_now
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 531
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 531
    functionName: ndpi_cache_address_flush_expired
    functionSourceFile: /src/ndpi/src/lib/ndpi_cache.c
    functionUses: 0
    functionsReached:
    - ndpi_address_cache_flush_expired
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_cache_address_flush_expired(struct ndpi_detection_module_struct
      *ndpi_struct, u_int32_t epoch_now)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:47,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:52,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: ndpi_bitmap64_fuse_alloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - ndpi_malloc
    - ndpi_free
    linkageType: ''
    returnType: ndpi_bitmap64_fuse
    signature: ndpi_bitmap64_fuse * ndpi_bitmap64_fuse_alloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: ndpi_bitmap64_fuse_entry_compare
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_bitmap64_fuse_entry_compare(const void *_a, const void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:87,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:97,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:103,1
    - Dst: binary_fuse16_allocate
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:112,1
    - Dst: binary_fuse16_populate
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:113,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:114,1
    - Dst: binary_fuse16_free
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:117,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - _b
    argTypes:
    - ndpi_bitmap64_fuse*
    constantsTouched: []
    func_position:
      end: 127
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 127
    functionName: ndpi_bitmap64_fuse_compress
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c
    functionUses: 0
    functionsReached:
    - memcpy
    - printf
    - binary_fuse16_allocate
    - ndpi_free
    - qsort
    - binary_fuse16_populate
    - binary_fuse16_free
    linkageType: ''
    returnType: bool
    signature: bool ndpi_bitmap64_fuse_compress(ndpi_bitmap64_fuse *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_fuse16_free
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:143,1
    - Dst: ndpi_realloc
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - _b
    - value
    argTypes:
    - ndpi_bitmap64_fuse*
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 166
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 166
    functionName: ndpi_bitmap64_fuse_set
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c
    functionUses: 0
    functionsReached:
    - ndpi_realloc
    - binary_fuse16_free
    linkageType: ''
    returnType: bool
    signature: bool ndpi_bitmap64_fuse_set(ndpi_bitmap64_fuse *_b, u_int64_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmap64_fuse_compress
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:177,1
    - Dst: binary_fuse16_contain
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - _b
    - value
    argTypes:
    - ndpi_bitmap64_fuse*
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: ndpi_bitmap64_fuse_isset
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmap64_fuse_compress
    - binary_fuse16_contain
    linkageType: ''
    returnType: bool
    signature: bool ndpi_bitmap64_fuse_isset(ndpi_bitmap64_fuse *_b, u_int64_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:192,1
    - Dst: binary_fuse16_free
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:195,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - _b
    argTypes:
    - ndpi_bitmap64_fuse*
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: ndpi_bitmap64_fuse_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c
    functionUses: 0
    functionsReached:
    - binary_fuse16_free
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap64_fuse_free(ndpi_bitmap64_fuse *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmap64_fuse_compress
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:208,1
    - Dst: binary_fuse16_size_in_bytes
      Src: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - _b
    argTypes:
    - ndpi_bitmap64_fuse*
    constantsTouched: []
    func_position:
      end: 213
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 213
    functionName: ndpi_bitmap64_fuse_size
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmap64_fuse_compress
    - binary_fuse16_size_in_bytes
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_bitmap64_fuse_size(ndpi_bitmap64_fuse *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:35,1
    - Dst: ndpi_hash_init
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:40,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: ndpi_domain_classify_alloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_domain_classify.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_init
    - ndpi_malloc
    - ndpi_free
    linkageType: ''
    returnType: ndpi_domain_classify
    signature: ndpi_domain_classify * ndpi_domain_classify_alloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_hash_free
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:54,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - ndpi_domain_classify*
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: ndpi_domain_classify_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_domain_classify.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_free
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_domain_classify_free(ndpi_domain_classify *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - ndpi_domain_classify*
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: ndpi_domain_classify_size
    functionSourceFile: /src/ndpi/src/lib/ndpi_domain_classify.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_domain_classify_size(ndpi_domain_classify *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_encode_domain
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:94,1
    - Dst: ndpi_hash_add_entry
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:96,1
    - Dst: ndpi_hash_add_entry
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:98,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:98,1
    - Dst: ndpi_hash_add_entry
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:100,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - ndpi_str
    - s
    - class_id
    - domain
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_domain_classify*
    - u_int16_t
    - char*
    constantsTouched: []
    func_position:
      end: 104
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 104
    functionName: ndpi_domain_classify_add
    functionSourceFile: /src/ndpi/src/lib/ndpi_domain_classify.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_add_entry
    - strlen
    - ndpi_encode_domain
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_domain_classify_add(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t      ndpi_domain_classify *s,\n\t\t\t      u_int16_t class_id,\n\t\t\t
      \     char *domain)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:120,1
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:124,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:130,1
    - Dst: ndpi_domain_classify_add
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:138,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - ndpi_mod
    - s
    - class_id
    - file_path
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_domain_classify*
    - u_int16_t
    - char*
    constantsTouched: []
    func_position:
      end: 145
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 145
    functionName: ndpi_domain_classify_add_domains
    functionSourceFile: /src/ndpi/src/lib/ndpi_domain_classify.c
    functionUses: 0
    functionsReached:
    - fclose
    - ndpi_domain_classify_add
    - fopen
    - fgets
    - strlen
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t ndpi_domain_classify_add_domains(struct ndpi_detection_module_struct
      *ndpi_mod,\n\t\t\t\t\t   ndpi_domain_classify *s,\n\t\t\t\t\t   u_int16_t class_id,\n\t\t\t\t\t
      \  char *file_path)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:161,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:162,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:163,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:163,1
    - Dst: ndpi_encode_domain
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:174,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:176,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:179,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:179,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:183,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:183,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_domain_classify.c:187,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 4
    argNames:
    - ndpi_mod
    - s
    - class_id
    - hostname
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_domain_classify*
    - u_int16_t*
    - char*
    constantsTouched: []
    func_position:
      end: 194
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 194
    functionName: ndpi_domain_classify_hostname
    functionSourceFile: /src/ndpi/src/lib/ndpi_domain_classify.c
    functionUses: 0
    functionsReached:
    - strrchr
    - strcmp
    - ndpi_encode_domain
    - ndpi_hash_find_entry
    - strchr
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_domain_classify_hostname(struct ndpi_detection_module_struct
      *ndpi_mod,\n\t\t\t\t   ndpi_domain_classify *s,\n\t\t\t\t   u_int16_t *class_id
      /* out */,\n\t\t\t\t   char *hostname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:39,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:44,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: ndpi_binary_bitmap_alloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_binary_bitmap.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - ndpi_malloc
    - ndpi_free
    linkageType: ''
    returnType: ndpi_binary_bitmap
    signature: ndpi_binary_bitmap * ndpi_binary_bitmap_alloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_realloc
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:62,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - b
    - value
    - category
    argTypes:
    - ndpi_binary_bitmap*
    - u_int64_t
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 80
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: ndpi_binary_bitmap_set
    functionSourceFile: /src/ndpi/src/lib/ndpi_binary_bitmap.c
    functionUses: 0
    functionsReached:
    - ndpi_realloc
    - printf
    linkageType: ''
    returnType: bool
    signature: bool ndpi_binary_bitmap_set(ndpi_binary_bitmap *b, u_int64_t value,
      u_int8_t category)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: ndpi_binary_bitmap_entry_compare
    functionSourceFile: /src/ndpi/src/lib/ndpi_binary_bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_binary_bitmap_entry_compare(const void *_a, const void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:103,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:113,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:119,1
    - Dst: ndpi_realloc
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_binary_bitmap*
    constantsTouched: []
    func_position:
      end: 138
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 138
    functionName: ndpi_binary_bitmap_compress
    functionSourceFile: /src/ndpi/src/lib/ndpi_binary_bitmap.c
    functionUses: 0
    functionsReached:
    - qsort
    - memcpy
    - printf
    - ndpi_realloc
    linkageType: ''
    returnType: bool
    signature: bool ndpi_binary_bitmap_compress(ndpi_binary_bitmap *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_binary_bitmap_compress
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:143,1
    - Dst: bsearch
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - b
    - value
    - out_category
    argTypes:
    - ndpi_binary_bitmap*
    - u_int64_t
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 160
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 160
    functionName: ndpi_binary_bitmap_isset
    functionSourceFile: /src/ndpi/src/lib/ndpi_binary_bitmap.c
    functionUses: 0
    functionsReached:
    - ndpi_binary_bitmap_compress
    - bsearch
    linkageType: ''
    returnType: bool
    signature: bool ndpi_binary_bitmap_isset(ndpi_binary_bitmap *b, u_int64_t value,
      u_int8_t *out_category)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:165,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_binary_bitmap*
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: ndpi_binary_bitmap_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_binary_bitmap.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_binary_bitmap_free(ndpi_binary_bitmap *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_binary_bitmap_compress
      Src: /src/ndpi/src/lib/ndpi_binary_bitmap.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_binary_bitmap*
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: ndpi_binary_bitmap_size
    functionSourceFile: /src/ndpi/src/lib/ndpi_binary_bitmap.c
    functionUses: 0
    functionsReached:
    - ndpi_binary_bitmap_compress
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_binary_bitmap_size(ndpi_binary_bitmap *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_binary_bitmap*
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: ndpi_binary_bitmap_cardinality
    functionSourceFile: /src/ndpi/src/lib/ndpi_binary_bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_binary_bitmap_cardinality(ndpi_binary_bitmap *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - flow
    - p
    argTypes:
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: flow_is_proto
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t flow_is_proto(struct ndpi_flow_struct *flow, u_int16_t p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ndpi_flow_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:265,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: ndpi_flow_malloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_malloc
    - _ndpi_flow_malloc
    linkageType: ''
    returnType: void
    signature: void *ndpi_flow_malloc(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ndpi_flow_free
      Src: /src/ndpi/src/lib/ndpi_main.c:272,1
    - Dst: ndpi_free_flow
      Src: /src/ndpi/src/lib/ndpi_main.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: ndpi_flow_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_free_flow
    - _ndpi_flow_free
    linkageType: ''
    returnType: void
    signature: void ndpi_flow_free(void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: ndpi_detection_get_sizeof_ndpi_flow_struct
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_detection_get_sizeof_ndpi_flow_struct(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_main.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_str
    - id
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: ndpi_get_proto_by_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: char
    signature: char *ndpi_get_proto_by_id(struct ndpi_detection_module_struct *ndpi_str,
      u_int id)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - bit
    argTypes:
    - struct ndpi_dissector_bitmask*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: dissector_bitmask_set
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dissector_bitmask_set(struct ndpi_dissector_bitmask *b, u_int16_t
      bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - bit
    argTypes:
    - struct ndpi_dissector_bitmask*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: dissector_bitmask_is_set
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dissector_bitmask_is_set(const struct ndpi_dissector_bitmask *b,
      u_int16_t bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_proto_by_id
      Src: /src/ndpi/src/lib/ndpi_main.c:322,1
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_main.c:323,1
    - Dst: strcasecmp
      Src: /src/ndpi/src/lib/ndpi_main.c:324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_str
    - name
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 330
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 330
    functionName: ndpi_get_proto_by_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - tolower
    - ndpi_get_proto_by_id
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_get_proto_by_name(struct ndpi_detection_module_struct
      *ndpi_str, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:342,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:343,1
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/src/lib/ndpi_main.c:348,1
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/src/lib/ndpi_main.c:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_str
    - name
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 359
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 359
    functionName: ndpi_get_protocol_by_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_proto_by_name
    - snprintf
    - strchr
    linkageType: ''
    returnType: ndpi_master_app_protocol
    signature: ndpi_master_app_protocol ndpi_get_protocol_by_name(struct ndpi_detection_module_struct
      *ndpi_str, const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:368,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:369,1
    - Dst: ndpi_is_custom_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:372,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:373,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:374,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:380,1
    - Dst: ndpi_max
      Src: /src/ndpi/src/lib/ndpi_main.c:386,1
    - Dst: ndpi_realloc
      Src: /src/ndpi/src/lib/ndpi_main.c:387,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ndpi_str
    - ndpi_proto_id
    - user_proto_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 399
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 399
    functionName: ndpi_add_user_proto_id_mapping
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_realloc
    - NDPI_LOG_ERR
    - NDPI_LOG_DBG2
    - ndpi_max
    - NDPI_LOG_DBG
    - ndpi_get_num_internal_protocols
    - ndpi_is_custom_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_add_user_proto_id_mapping(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t   u_int16_t ndpi_proto_id, u_int16_t user_proto_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:408,1
    - Dst: ndpi_is_custom_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:414,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:417,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_str
    - user_proto_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 430
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 430
    functionName: ndpi_map_user_proto_id_to_ndpi_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_num_internal_protocols
    - ndpi_is_custom_protocol
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_map_user_proto_id_to_ndpi_id(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t    u_int16_t user_proto_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:438,1
    - Dst: ndpi_is_custom_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:444,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_str
    - ndpi_proto_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 454
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 454
    functionName: ndpi_map_ndpi_id_to_user_proto_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_num_internal_protocols
    - ndpi_is_custom_protocol
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_map_ndpi_id_to_user_proto_id(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t    u_int16_t ndpi_proto_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 11
    argNames:
    - ports
    - portA_low
    - portA_high
    - portB_low
    - portB_high
    - portC_low
    - portC_high
    - portD_low
    - portD_high
    - portE_low
    - portE_high
    argTypes:
    - ndpi_port_range*
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 475
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 475
    functionName: ndpi_build_default_ports_range
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ndpi_port_range
    signature: "ndpi_port_range *ndpi_build_default_ports_range(ndpi_port_range *ports,
      u_int16_t portA_low, u_int16_t portA_high,\n                                                       u_int16_t
      portB_low, u_int16_t portB_high, u_int16_t portC_low,\n                                                       u_int16_t
      portC_high, u_int16_t portD_low, u_int16_t portD_high,\n                                                       u_int16_t
      portE_low, u_int16_t portE_high)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 6
    argNames:
    - ports
    - portA
    - portB
    - portC
    - portD
    - portE
    argTypes:
    - ndpi_port_range*
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 495
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 495
    functionName: ndpi_build_default_ports
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ndpi_port_range
    signature: "ndpi_port_range *ndpi_build_default_ports(ndpi_port_range *ports,
      u_int16_t portA, u_int16_t portB, u_int16_t portC,\n                                          u_int16_t
      portD, u_int16_t portE)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_main.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ndpi_str
    - protoId
    - breed
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    - ndpi_protocol_breed_t
    constantsTouched: []
    func_position:
      end: 504
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 504
    functionName: ndpi_set_proto_breed
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: void
    signature: "void ndpi_set_proto_breed(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \ u_int16_t protoId, ndpi_protocol_breed_t breed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_main.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ndpi_str
    - protoId
    - protoCategory
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    - ndpi_protocol_category_t
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: ndpi_set_proto_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: void
    signature: "void ndpi_set_proto_category(struct ndpi_detection_module_struct *ndpi_str,
      u_int16_t protoId,\n                             ndpi_protocol_category_t protoCategory)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 547
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 547
    functionName: is_flow_addr_informative
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_flow_addr_informative(const struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_main.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_mod
    - protoId
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 574
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 574
    functionName: ndpi_is_subprotocol_informative
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_subprotocol_informative(struct ndpi_detection_module_struct
      *ndpi_mod, u_int16_t protoId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dissector_bitmask_set
      Src: /src/ndpi/src/lib/ndpi_main.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ndpi_str
    - flow
    - dissector_idx
    - _file
    - _func
    - _line
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 594
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 594
    functionName: exclude_dissector
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - dissector_bitmask_set
    linkageType: ''
    returnType: void
    signature: "void exclude_dissector(struct ndpi_detection_module_struct *ndpi_str,
      struct ndpi_flow_struct *flow,\n                       u_int16_t dissector_idx,
      const char *_file, const char *_func, int _line)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_custom_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:603,1
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_main.c:608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_str
    - protoId
    argTypes:
    - struct ndpi_detection_module_struct*
    - int
    constantsTouched: []
    func_position:
      end: 611
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 611
    functionName: is_proto_enabled
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_is_custom_protocol
    - ndpi_bitmask_is_set
    linkageType: ''
    returnType: int
    signature: int is_proto_enabled(struct ndpi_detection_module_struct *ndpi_str,
      int protoId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:621,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:622,1
    - Dst: va_start
      Src: /src/ndpi/src/lib/ndpi_main.c:626,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:628,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:629,1
    - Dst: va_arg
      Src: /src/ndpi/src/lib/ndpi_main.c:633,1
    - Dst: va_end
      Src: /src/ndpi/src/lib/ndpi_main.c:635,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:647,1
    - Dst: va_start
      Src: /src/ndpi/src/lib/ndpi_main.c:653,1
    - Dst: va_arg
      Src: /src/ndpi/src/lib/ndpi_main.c:654,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:657,1
    - Dst: va_arg
      Src: /src/ndpi/src/lib/ndpi_main.c:660,1
    - Dst: va_end
      Src: /src/ndpi/src/lib/ndpi_main.c:663,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - ndpi_str
    - protoId
    argTypes:
    - struct ndpi_detection_module_struct*
    - int
    constantsTouched: []
    func_position:
      end: 664
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 664
    functionName: ndpi_set_proto_subprotocols
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - ndpi_malloc
    - NDPI_LOG_DBG
    - va_arg
    - is_proto_enabled
    linkageType: ''
    returnType: void
    signature: void ndpi_set_proto_subprotocols(struct ndpi_detection_module_struct
      *ndpi_str, int protoId, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:685,1
    - Dst: ndpi_max
      Src: /src/ndpi/src/lib/ndpi_main.c:693,1
    - Dst: ndpi_nearest_power_of_two
      Src: /src/ndpi/src/lib/ndpi_main.c:693,1
    - Dst: ndpi_realloc
      Src: /src/ndpi/src/lib/ndpi_main.c:694,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:698,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:701,1
    - Dst: strcasecmp
      Src: /src/ndpi/src/lib/ndpi_main.c:709,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:710,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:713,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_main.c:718,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:720,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:747,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:748,1
    - Dst: addDefaultPort
      Src: /src/ndpi/src/lib/ndpi_main.c:755,1
    - Dst: addDefaultPort
      Src: /src/ndpi/src/lib/ndpi_main.c:760,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 11
    argNames:
    - ndpi_str
    - is_cleartext
    - is_app_protocol
    - breed
    - protoId
    - protoName
    - protoCategory
    - qoeCategory
    - tcpDefPorts
    - udpDefPorts
    - is_custom_protocol
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int8_t
    - u_int8_t
    - ndpi_protocol_breed_t
    - u_int16_t
    - char*
    - ndpi_protocol_category_t
    - ndpi_protocol_qoe_category_t
    - ndpi_port_range*
    - ndpi_port_range*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 764
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 764
    functionName: ndpi_set_proto_defaults
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_realloc
    - ndpi_nearest_power_of_two
    - memset
    - NDPI_LOG_ERR
    - NDPI_LOG_DBG2
    - addDefaultPort
    - ndpi_max
    - strcasecmp
    - ndpi_strdup
    - NDPI_LOG_DBG
    - is_proto_enabled
    linkageType: ''
    returnType: void
    signature: "void ndpi_set_proto_defaults(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \           u_int8_t is_cleartext, u_int8_t is_app_protocol,\n\t\t\t            ndpi_protocol_breed_t
      breed,\n\t\t\t            u_int16_t protoId, char *protoName,\n\t\t\t            ndpi_protocol_category_t
      protoCategory,\n\t\t\t            ndpi_protocol_qoe_category_t qoeCategory,\n\t\t\t
      \           ndpi_port_range *tcpDefPorts,\n\t\t\t            ndpi_port_range
      *udpDefPorts,\n\t\t\t            u_int8_t is_custom_protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 775
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 775
    functionName: default_ports_tree_node_t_cmp
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int default_ports_tree_node_t_cmp(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:793,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:797,1
    - Dst: ndpi_tsearch
      Src: /src/ndpi/src/lib/ndpi_main.c:802,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:807,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:808,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:813,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:817,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 7
    argNames:
    - ndpi_str
    - range
    - proto_idx
    - customUserProto
    - root
    - _func
    - _line
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_port_range*
    - u_int16_t
    - u_int8_t
    - default_ports_tree_node_t**
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 823
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 823
    functionName: addDefaultPort
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - NDPI_LOG_ERR
    - ndpi_free
    - ndpi_malloc
    - NDPI_LOG_DBG
    - ndpi_tsearch
    linkageType: ''
    returnType: int
    signature: "int addDefaultPort(struct ndpi_detection_module_struct *ndpi_str,\n
      \                         ndpi_port_range *range,\n\t\t\t  u_int16_t proto_idx,\n\t\t\t
      \ u_int8_t customUserProto,\n\t\t\t  default_ports_tree_node_t **root,\n\t\t\t
      \ const char *_func,\n\t\t\t  int _line)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 846
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 846
    functionName: ndpi_is_middle_string_char
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_middle_string_char(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 875
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 875
    functionName: ndpi_domain_level
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_domain_level(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_main.c:891,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:895,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:897,1
    - Dst: ndpi_domain_level
      Src: /src/ndpi/src/lib/ndpi_main.c:904,1
    - Dst: ndpi_is_middle_string_char
      Src: /src/ndpi/src/lib/ndpi_main.c:905,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/ndpi_main.c:906,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:909,1
    - Dst: ac_automata_add
      Src: /src/ndpi/src/lib/ndpi_main.c:914,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:917,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 7
    argNames:
    - ac_automa
    - value
    - protocol_id
    - category
    - breed
    - level
    - add_ends_with
    argTypes:
    - AC_AUTOMATA_t*
    - char*
    - u_int16_t
    - ndpi_protocol_category_t
    - ndpi_protocol_breed_t
    - u_int8_t
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 924
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 924
    functionName: string_to_automa
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - memset
    - ndpi_is_middle_string_char
    - printf
    - ndpi_free
    - ndpi_strdup
    - memchr
    - ac_automata_add
    - ndpi_domain_level
    - strlen
    linkageType: ''
    returnType: int
    signature: "int string_to_automa(AC_AUTOMATA_t *ac_automa, const char *value,\n
      \                           u_int16_t protocol_id, ndpi_protocol_category_t
      category,\n                            ndpi_protocol_breed_t breed, u_int8_t
      level,\n                            u_int8_t add_ends_with)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:933,1
    - Dst: string_to_automa
      Src: /src/ndpi/src/lib/ndpi_main.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ndpi_str
    - value
    - protocol_id
    - category
    - breed
    - level
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - int
    - ndpi_protocol_category_t
    - ndpi_protocol_breed_t
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 939
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 939
    functionName: ndpi_add_host_url_subprotocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - string_to_automa
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: int
    signature: "int ndpi_add_host_url_subprotocol(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t char *value, int protocol_id,\n                                         ndpi_protocol_category_t
      category,\n\t\t\t\t\t ndpi_protocol_breed_t breed, u_int8_t level)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:977,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:985,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:986,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:989,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:990,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ndpi_str
    - match
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_protocol_match*
    constantsTouched: []
    func_position:
      end: 996
      start: 943
    functionDepth: 3
    functionLinenumber: 943
    functionLinenumberEnd: 996
    functionName: ndpi_init_app_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_proto_defaults
    - ndpi_build_default_ports
    - NDPI_LOG_DBG
    - is_proto_enabled
    linkageType: ''
    returnType: int
    signature: "int ndpi_init_app_protocol(struct ndpi_detection_module_struct *ndpi_str,\n
      \                          ndpi_protocol_match const * const match)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_app_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:1002,1
    - Dst: ndpi_add_host_url_subprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_str
    - match
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_protocol_match*
    constantsTouched: []
    func_position:
      end: 1007
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1007
    functionName: ndpi_init_protocol_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_add_host_url_subprotocol
    - ndpi_init_app_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_init_protocol_match(struct ndpi_detection_module_struct
      *ndpi_str,\n                              ndpi_protocol_match const * const
      match)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:1018,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:1023,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:1024,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_str
    - hosts
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_protocol_match*
    constantsTouched: []
    func_position:
      end: 1030
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1030
    functionName: self_check_host_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void self_check_host_match(struct ndpi_detection_module_struct *ndpi_str,\n
      \                                 ndpi_protocol_match *hosts)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:1051,1
    - Dst: abort
      Src: /src/ndpi/src/lib/ndpi_main.c:1054,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:1060,1
    - Dst: abort
      Src: /src/ndpi/src/lib/ndpi_main.c:1063,1
    - Dst: abort
      Src: /src/ndpi/src/lib/ndpi_main.c:1065,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 6
    argNames:
    - ndpi_str
    - dst
    - dn
    - src
    - sn
    - l
    argTypes:
    - struct ndpi_detection_module_struct*
    - unsigned int*
    - size_t
    - char**
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1068
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1068
    functionName: ndpi_xgrams_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    - abort
    linkageType: ''
    returnType: void
    signature: "void ndpi_xgrams_init(struct ndpi_detection_module_struct *ndpi_str,\n
      \                            unsigned int *dst, size_t dn,\n                             const
      char **src, size_t sn,\n                             unsigned int l)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: self_check_host_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1076,1
    - Dst: self_check_host_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1077,1
    - Dst: self_check_host_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1078,1
    - Dst: self_check_host_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1079,1
    - Dst: self_check_host_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1080,1
    - Dst: self_check_host_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1081,1
    - Dst: ndpi_init_protocol_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1084,1
    - Dst: ndpi_init_protocol_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1086,1
    - Dst: ndpi_init_protocol_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1088,1
    - Dst: ndpi_init_protocol_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1090,1
    - Dst: ndpi_init_protocol_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1092,1
    - Dst: ndpi_init_protocol_match
      Src: /src/ndpi/src/lib/ndpi_main.c:1094,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:1099,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:1100,1
    - Dst: ndpi_add_string_value_to_automa
      Src: /src/ndpi/src/lib/ndpi_main.c:1106,1
    - Dst: ndpi_xgrams_init
      Src: /src/ndpi/src/lib/ndpi_main.c:1117,1
    - Dst: ndpi_xgrams_init
      Src: /src/ndpi/src/lib/ndpi_main.c:1120,1
    - Dst: ndpi_xgrams_init
      Src: /src/ndpi/src/lib/ndpi_main.c:1122,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 1125
      start: 1072
    functionDepth: 5
    functionLinenumber: 1072
    functionLinenumberEnd: 1125
    functionName: init_string_based_protocols
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_add_string_value_to_automa
    - NDPI_LOG_DBG
    - ndpi_init_protocol_match
    - ndpi_xgrams_init
    - is_proto_enabled
    - self_check_host_match
    linkageType: ''
    returnType: void
    signature: void init_string_based_protocols(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:1134,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:1140,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:1145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 1151
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1151
    functionName: validate_protocol_initialization
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    linkageType: ''
    returnType: void
    signature: void validate_protocol_initialization(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1163,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1165,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1166,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1168,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1170,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1171,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1173,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1175,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1176,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1178,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1180,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1181,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1183,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1185,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1186,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1188,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1190,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1191,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1193,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1195,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1196,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1198,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1200,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1201,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1203,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1205,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1206,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1208,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1210,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1211,1
    - Dst: ndpi_set_proto_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:1213,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1216,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1218,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1219,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1221,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1223,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1224,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1226,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1228,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1229,1
    - Dst: ndpi_set_proto_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:1231,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1245,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1247,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1248,1
    - Dst: ndpi_set_proto_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:1250,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1253,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1255,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1256,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1258,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1260,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1261,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1263,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1265,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1266,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1268,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1270,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1271,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1273,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1275,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1276,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1278,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1280,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1281,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1283,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1285,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1286,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1288,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1290,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1291,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1293,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1295,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1296,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1298,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1300,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1301,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1303,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1305,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1306,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1308,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1310,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1311,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1313,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1315,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1316,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1318,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1320,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1321,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1323,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1325,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1326,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1328,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1330,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1331,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1333,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1335,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1336,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1338,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1340,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1341,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1343,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1345,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1346,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1348,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1350,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1351,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1353,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1355,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1356,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1358,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1360,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1361,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1363,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1365,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1366,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1368,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1370,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1371,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1373,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1375,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1376,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1378,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1380,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1381,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1383,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1385,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1386,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1388,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1390,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1391,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1393,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1395,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1396,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1398,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1400,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1401,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1403,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1405,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1406,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1408,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1410,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1411,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1413,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1415,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1416,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1418,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1420,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1421,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1423,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1425,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1426,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1428,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1430,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1431,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1433,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1435,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1436,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1438,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1440,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1441,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1443,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1445,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1446,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1448,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1450,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1451,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1453,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1455,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1456,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1458,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1460,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1461,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1463,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1465,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1466,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1468,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1470,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1471,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1473,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1475,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1476,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1478,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1480,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1481,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1483,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1485,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1486,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1488,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1490,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1491,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1493,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1495,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1496,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1498,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1500,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1501,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1503,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1505,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1506,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1508,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1510,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1511,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1513,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1515,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1516,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1518,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1520,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1521,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1523,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1525,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1526,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1528,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1530,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1531,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1533,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1535,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1536,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1538,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1540,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1541,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1543,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1545,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1546,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1548,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1550,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1551,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1553,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1555,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1556,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1558,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1560,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1561,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1563,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1565,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1566,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1568,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1570,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1571,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1573,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1575,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1576,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1578,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1580,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1581,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1583,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1585,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1586,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1588,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1590,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1591,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1593,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1595,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1596,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1598,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1600,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1601,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1603,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1605,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1606,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1608,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1610,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1611,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1613,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1615,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1616,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1618,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1620,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1621,1
    - Dst: ndpi_set_proto_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:1623,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1626,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1628,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1629,1
    - Dst: ndpi_set_proto_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:1631,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1634,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1636,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1637,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1639,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1641,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1642,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1644,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1646,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1647,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1649,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1651,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1652,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1654,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1656,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1657,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1659,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1661,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1662,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1664,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1666,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1667,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1669,1
    - Dst: ndpi_build_default_ports_range
      Src: /src/ndpi/src/lib/ndpi_main.c:1671,1
    - Dst: ndpi_build_default_ports_range
      Src: /src/ndpi/src/lib/ndpi_main.c:1672,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1674,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1676,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1677,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1679,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1681,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1682,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1684,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1686,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1687,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1689,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1691,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1692,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1694,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1696,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1697,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1699,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1701,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1702,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1704,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1706,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1707,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1709,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1711,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1712,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1714,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1716,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1717,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1719,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1721,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1722,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1724,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1726,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1727,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1729,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1731,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1732,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1734,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1736,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1737,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1739,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1741,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1742,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1744,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1746,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1747,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1749,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1751,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1752,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1754,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1756,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1757,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1759,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1761,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1762,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1764,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1766,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1767,1
    - Dst: ndpi_set_proto_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:1769,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1772,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1774,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1775,1
    - Dst: ndpi_set_proto_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:1777,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1780,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1782,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1783,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1785,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1787,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1788,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1790,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1792,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1793,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1795,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1797,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1798,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1800,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1802,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1803,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1805,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1807,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1808,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1810,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1812,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1813,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1815,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1817,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1818,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1820,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1822,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1823,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1825,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1827,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1828,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1830,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1832,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1833,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1835,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1837,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1838,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1840,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1842,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1843,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1845,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1847,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1848,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1850,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1852,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1853,1
    - Dst: ndpi_set_proto_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:1855,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1858,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1860,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1861,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1863,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1865,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1866,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1868,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1870,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1871,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1873,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1875,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1876,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1878,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1880,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1881,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1883,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1885,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1886,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1888,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1890,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1891,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1893,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1895,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1896,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1898,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1900,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1901,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1903,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1905,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1906,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1909,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1911,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1912,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1914,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1916,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1917,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1919,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1921,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1922,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1924,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1926,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1927,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1929,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1931,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1932,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1934,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1936,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1937,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1939,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1941,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1942,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1944,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1946,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1947,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1949,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1951,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1952,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1954,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1956,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1957,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1959,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1961,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1962,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1964,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1966,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1967,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1969,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1971,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1972,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1974,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1976,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1977,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1979,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1981,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1982,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1984,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1986,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1987,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1989,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1991,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1992,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1994,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1996,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:1997,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:1999,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2001,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2002,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2004,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2006,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2007,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2009,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2011,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2012,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2014,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2016,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2017,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2019,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2021,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2022,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2024,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2026,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2027,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2029,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2031,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2032,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2034,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2036,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2037,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2039,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2041,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2042,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2044,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2046,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2047,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2049,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2051,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2052,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2054,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2056,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2057,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2059,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2061,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2062,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2064,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2066,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2067,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2069,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2071,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2072,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2074,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2076,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2077,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2079,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2081,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2082,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2084,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2086,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2087,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2089,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2091,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2092,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2094,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2096,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2097,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2099,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2101,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2102,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2104,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2106,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2107,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2109,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2111,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2112,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2114,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2116,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2117,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2119,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2121,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2122,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2124,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2126,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2127,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2129,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2131,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2132,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2134,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2136,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2137,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2139,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2141,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2142,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2144,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2146,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2147,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2149,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2151,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2152,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2154,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2156,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2157,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2159,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2161,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2162,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2164,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2166,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2167,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2169,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2171,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2172,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2174,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2176,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2177,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2179,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2181,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2182,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2184,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2186,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2187,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2189,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2191,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2192,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2194,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2196,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2197,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2199,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2201,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2202,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2204,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2206,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2207,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2209,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2211,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2212,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2214,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2216,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2217,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2219,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2221,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2222,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2224,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2226,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2227,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2229,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2231,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2232,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2234,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2236,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2237,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2239,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2241,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2242,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2244,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2246,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2247,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2249,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2251,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2252,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2254,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2256,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2257,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2259,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2261,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2262,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2264,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2266,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2267,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2269,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2271,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2272,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2274,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2276,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2277,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2279,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2281,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2282,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2284,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2286,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2287,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2289,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2291,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2292,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2294,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2296,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2297,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2299,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2301,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2302,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2304,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2306,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2307,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2313,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2315,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2316,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2318,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2320,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2321,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2323,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2325,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2326,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2328,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2330,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2331,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2333,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2335,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2336,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2338,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2340,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2341,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2343,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2345,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2346,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2348,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2350,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2351,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2353,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2355,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2356,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2358,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2360,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2361,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2363,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2365,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2366,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2368,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2370,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2371,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2373,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2375,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2376,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2378,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2380,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2381,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2383,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2385,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2386,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2388,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2390,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2391,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2393,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2395,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2396,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2398,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2400,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2401,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2403,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2405,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2406,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2408,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2410,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2411,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2413,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2415,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2416,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2418,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2420,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2421,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2423,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2425,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2426,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2428,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2430,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2431,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2433,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2435,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2436,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2438,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2440,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2441,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2443,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2445,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2446,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2448,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2450,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2451,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2453,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2455,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2456,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2458,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2460,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2461,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2463,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2465,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2466,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2468,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2470,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2471,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2473,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2475,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2476,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2478,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2480,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2481,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2483,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2485,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2486,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2488,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2490,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2491,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2493,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2495,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2496,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2498,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2500,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2501,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2503,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2505,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2506,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2508,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2510,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2511,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2513,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2515,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2516,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2518,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2520,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2521,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2523,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2525,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2526,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2528,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2530,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2531,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2533,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2535,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2536,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2538,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2540,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2541,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2543,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2545,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2546,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2548,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2550,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2551,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2553,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2555,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2556,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2558,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2560,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2561,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2563,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2565,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2566,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2568,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2570,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2571,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2573,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2575,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2576,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2578,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2580,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2581,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2583,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2585,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2586,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2588,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2590,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2591,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2593,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2595,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2596,1
    - Dst: ndpi_set_proto_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:2598,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2602,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2604,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2605,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2607,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2609,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2610,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2612,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2614,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2615,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2617,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2619,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2620,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2622,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2624,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2625,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2627,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2629,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2630,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2632,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2634,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2635,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2637,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2639,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2640,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2642,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2644,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2645,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2647,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2649,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2650,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2652,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2654,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2655,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2657,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2659,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2660,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2662,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2664,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2665,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2667,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2669,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2670,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2672,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2674,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2675,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2677,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2679,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2680,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2682,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2684,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2685,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2687,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2689,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2690,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2692,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2694,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2695,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2697,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2699,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2700,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2702,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2704,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2705,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2707,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2709,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2710,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2712,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2714,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2715,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2717,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2719,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2720,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2722,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2724,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2725,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2727,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2729,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2730,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2732,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2734,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2735,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2737,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2739,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2740,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2742,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2744,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2745,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2747,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2749,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2750,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2752,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2754,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2755,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2757,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2759,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2760,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2762,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2764,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2765,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2767,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2769,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2770,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2772,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2774,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2775,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2777,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2779,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2780,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2782,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2784,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2785,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2787,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2789,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2790,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2792,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2794,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2795,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2797,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2799,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2800,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2802,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2804,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2805,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2807,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2809,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2810,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2812,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2814,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2815,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2817,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2819,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2820,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2822,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2824,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2825,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2827,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2829,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2830,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2832,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2834,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2835,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2837,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2839,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2840,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2842,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2844,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2845,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2847,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2849,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2850,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2852,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2854,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2855,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2857,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2859,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2860,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2862,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2864,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2865,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2867,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2869,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2870,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2872,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2874,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2875,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2877,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2879,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2880,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2882,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2884,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2885,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2887,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2889,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2890,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2892,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2894,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2895,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2897,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2899,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2900,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:2902,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2904,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:2905,1
    - Dst: init_string_based_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:2913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 351
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 2914
      start: 1160
    functionDepth: 6
    functionLinenumber: 1160
    functionLinenumberEnd: 2914
    functionName: ndpi_init_protocol_defaults
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_proto_defaults
    - ndpi_build_default_ports
    - ndpi_build_default_ports_range
    - ndpi_set_proto_subprotocols
    - init_string_based_protocols
    linkageType: ''
    returnType: void
    signature: void ndpi_init_protocol_defaults(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MATCH_DEBUG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:2946,1
    - Dst: MATCH_DEBUG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:2955,1
    - Dst: ndpi_is_middle_string_char
      Src: /src/ndpi/src/lib/ndpi_main.c:2959,1
    - Dst: MATCH_DEBUG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:2968,1
    - Dst: MATCH_DEBUG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:2979,1
    - Dst: ndpi_is_middle_string_char
      Src: /src/ndpi/src/lib/ndpi_main.c:2987,1
    - Dst: MATCH_DEBUG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:2990,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 42
    argCount: 3
    argNames:
    - m
    - txt
    - match
    argTypes:
    - AC_MATCH_t*
    - AC_TEXT_t*
    - AC_REP_t*
    constantsTouched: []
    func_position:
      end: 2996
      start: 2931
    functionDepth: 1
    functionLinenumber: 2931
    functionLinenumberEnd: 2996
    functionName: ac_domain_match_handler
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - MATCH_DEBUG_INFO
    - ndpi_is_middle_string_char
    linkageType: ''
    returnType: int
    signature: int ac_domain_match_handler(AC_MATCH_t *m, AC_TEXT_t *txt, AC_REP_t
      *match)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tree
    argTypes:
    - ndpi_patricia_tree_t*
    constantsTouched: []
    func_position:
      end: 3004
      start: 3000
    functionDepth: 0
    functionLinenumber: 3000
    functionLinenumberEnd: 3004
    functionName: ndpi_patricia_get_maxbits
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_patricia_get_maxbits(ndpi_patricia_tree_t *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tree
    - stats
    argTypes:
    - ndpi_patricia_tree_t*
    - struct ndpi_patricia_tree_stats*
    constantsTouched: []
    func_position:
      end: 3016
      start: 3008
    functionDepth: 0
    functionLinenumber: 3008
    functionLinenumberEnd: 3016
    functionName: ndpi_patricia_get_stats
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_patricia_get_stats(ndpi_patricia_tree_t *tree, struct ndpi_patricia_tree_stats
      *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_patricia_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:3030,1
    - Dst: ndpi_patricia_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:3036,1
    - Dst: ndpi_patricia_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:3042,1
    - Dst: ndpi_patricia_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:3048,1
    - Dst: ndpi_patricia_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:3054,1
    - Dst: ndpi_patricia_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:3060,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - ndpi_struct
    - ptree_type
    - stats
    argTypes:
    - struct ndpi_detection_module_struct*
    - ptree_type
    - struct ndpi_patricia_tree_stats*
    constantsTouched: []
    func_position:
      end: 3066
      start: 3020
    functionDepth: 1
    functionLinenumber: 3020
    functionLinenumberEnd: 3066
    functionName: ndpi_get_patricia_stats
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_patricia_get_stats
    linkageType: ''
    returnType: int
    signature: "int ndpi_get_patricia_stats(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   ptree_type ptree_type,\n\t\t\t    struct ndpi_patricia_tree_stats *stats)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:3071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - p
    - a
    - b
    - mb
    argTypes:
    - ndpi_prefix_t*
    - struct in_addr*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3079
      start: 3070
    functionDepth: 0
    functionLinenumber: 3070
    functionLinenumberEnd: 3079
    functionName: ndpi_fill_prefix_v4
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int ndpi_fill_prefix_v4(ndpi_prefix_t *p, const struct in_addr *a,
      int b, int mb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:3084,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:3089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - prefix
    - addr
    - bits
    - maxbits
    argTypes:
    - ndpi_prefix_t*
    - struct in6_addr*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3093
      start: 3083
    functionDepth: 0
    functionLinenumber: 3083
    functionLinenumberEnd: 3093
    functionName: ndpi_fill_prefix_v6
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ndpi_fill_prefix_v6(ndpi_prefix_t *prefix, const struct in6_addr
      *addr, int bits, int maxbits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:3098,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:3103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - prefix
    - mac
    - bits
    - maxbits
    argTypes:
    - ndpi_prefix_t*
    - u_int8_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 3107
      start: 3097
    functionDepth: 0
    functionLinenumber: 3097
    functionLinenumberEnd: 3107
    functionName: ndpi_fill_prefix_mac
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ndpi_fill_prefix_mac(ndpi_prefix_t *prefix, u_int8_t *mac, int
      bits, int maxbits)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - ndpi_patricia_node_t*
    constantsTouched: []
    func_position:
      end: 3113
      start: 3111
    functionDepth: 0
    functionLinenumber: 3111
    functionLinenumberEnd: 3113
    functionName: ndpi_patricia_get_node_prefix
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ndpi_prefix_t
    signature: ndpi_prefix_t *ndpi_patricia_get_node_prefix(ndpi_patricia_node_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - ndpi_patricia_node_t*
    constantsTouched: []
    func_position:
      end: 3119
      start: 3117
    functionDepth: 0
    functionLinenumber: 3117
    functionLinenumberEnd: 3119
    functionName: ndpi_patricia_get_node_bits
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_patricia_get_node_bits(ndpi_patricia_node_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - ndpi_patricia_node_t*
    - void*
    constantsTouched: []
    func_position:
      end: 3125
      start: 3123
    functionDepth: 0
    functionLinenumber: 3123
    functionLinenumberEnd: 3125
    functionName: ndpi_patricia_set_node_data
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_patricia_set_node_data(ndpi_patricia_node_t *node, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - ndpi_patricia_node_t*
    constantsTouched: []
    func_position:
      end: 3131
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3131
    functionName: ndpi_patricia_get_node_data
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ndpi_patricia_get_node_data(ndpi_patricia_node_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - value
    argTypes:
    - ndpi_patricia_node_t*
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 3137
      start: 3135
    functionDepth: 0
    functionLinenumber: 3135
    functionLinenumberEnd: 3137
    functionName: ndpi_patricia_set_node_u64
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_patricia_set_node_u64(ndpi_patricia_node_t *node, u_int64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - ndpi_patricia_node_t*
    constantsTouched: []
    func_position:
      end: 3143
      start: 3141
    functionDepth: 0
    functionLinenumber: 3141
    functionLinenumberEnd: 3143
    functionName: ndpi_patricia_get_node_u64
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_patricia_get_node_u64(ndpi_patricia_node_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 3157
      start: 3147
    functionDepth: 0
    functionLinenumber: 3147
    functionLinenumberEnd: 3157
    functionName: ndpi_is_public_ipv4
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_public_ipv4(u_int32_t a /* host byte order */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_public_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:3178,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:3178,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:3183,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:3185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_str
    - pin
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct in_addr*
    constantsTouched: []
    func_position:
      end: 3188
      start: 3161
    functionDepth: 1
    functionLinenumber: 3161
    functionLinenumberEnd: 3188
    functionName: ndpi_network_ptree_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ntohl
    - ndpi_is_public_ipv4
    - ndpi_patricia_search_best
    - ndpi_fill_prefix_v4
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_network_ptree_match(struct ndpi_detection_module_struct
      *ndpi_str,\n                                   struct in_addr *pin /* network
      byte order */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:3201,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:3203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_str
    - pin
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct in6_addr*
    constantsTouched: []
    func_position:
      end: 3206
      start: 3192
    functionDepth: 1
    functionLinenumber: 3192
    functionLinenumberEnd: 3206
    functionName: ndpi_network_ptree6_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_fill_prefix_v6
    - ndpi_patricia_search_best
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_network_ptree6_match(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t    struct in6_addr *pin)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_public_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:3228,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:3228,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:3233,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:3235,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - ndpi_str
    - pin
    - port
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct in_addr*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 3263
      start: 3210
    functionDepth: 1
    functionLinenumber: 3210
    functionLinenumberEnd: 3263
    functionName: ndpi_network_port_ptree_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ntohl
    - ndpi_is_public_ipv4
    - ndpi_patricia_search_best
    - ndpi_fill_prefix_v4
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_network_port_ptree_match(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\tstruct in_addr *pin /* network byte order */,\n\t\t\t\t\tu_int16_t
      port /* network byte order */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:3280,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:3282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - ndpi_str
    - pin
    - port
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct in6_addr*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 3310
      start: 3267
    functionDepth: 1
    functionLinenumber: 3267
    functionLinenumberEnd: 3310
    functionName: ndpi_network_port_ptree6_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_fill_prefix_v6
    - ndpi_patricia_search_best
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_network_port_ptree6_match(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t struct in6_addr *pin,\n\t\t\t\t\t u_int16_t port /* network
      byte order */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:3323,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:3325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_str
    - pin
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct in_addr*
    constantsTouched: []
    func_position:
      end: 3331
      start: 3314
    functionDepth: 1
    functionLinenumber: 3314
    functionLinenumberEnd: 3331
    functionName: ndpi_network_risk_ptree_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_patricia_search_best
    - ndpi_fill_prefix_v4
    linkageType: ''
    returnType: ndpi_risk_enum
    signature: "ndpi_risk_enum ndpi_network_risk_ptree_match(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t     struct in_addr *pin /* network byte order */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:3341,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:3343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_str
    - pin
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct in6_addr*
    constantsTouched: []
    func_position:
      end: 3349
      start: 3335
    functionDepth: 1
    functionLinenumber: 3335
    functionLinenumberEnd: 3349
    functionName: ndpi_network_risk_ptree_match6
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_fill_prefix_v6
    - ndpi_patricia_search_best
    linkageType: ''
    returnType: ndpi_risk_enum
    signature: "ndpi_risk_enum ndpi_network_risk_ptree_match6(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t      struct in6_addr *pin)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:3358,1
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:3360,1
    - Dst: ndpi_patricia_lookup
      Src: /src/ndpi/src/lib/ndpi_main.c:3362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - tree
    - family
    - addr
    - bits
    argTypes:
    - ndpi_patricia_tree_t*
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 3366
      start: 3353
    functionDepth: 1
    functionLinenumber: 3353
    functionLinenumberEnd: 3366
    functionName: add_to_ptree
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_fill_prefix_v6
    - ndpi_patricia_lookup
    - ndpi_fill_prefix_v4
    linkageType: ''
    returnType: ndpi_patricia_node_t
    signature: ndpi_patricia_node_t * add_to_ptree(ndpi_patricia_tree_t *tree, int
      family, void *addr, int bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_main.c:3386,1
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_main.c:3394,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:3399,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:3405,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:3411,1
    - Dst: inet_addr
      Src: /src/ndpi/src/lib/ndpi_main.c:3416,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:3419,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3419,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:3423,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:3424,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3424,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_main.c:3447,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - ptree
    - path
    - protocol_id
    argTypes:
    - ndpi_ptree_t*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 3449
      start: 3375
    functionDepth: 2
    functionLinenumber: 3375
    functionLinenumberEnd: 3449
    functionName: ndpi_load_ptree_file
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - atoi
    - add_to_ptree
    - fclose
    - fopen
    - inet_addr
    - fgets
    - strlen
    - inet_pton
    - strtok_r
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_ptree_file(ndpi_ptree_t *ptree,\n\t\t\t const char *path,\n\t\t\t
      u_int16_t protocol_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_load_ptree_file
      Src: /src/ndpi/src/lib/ndpi_main.c:3463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ndpi_str
    - path
    - protocol_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 3464
      start: 3458
    functionDepth: 3
    functionLinenumber: 3458
    functionLinenumberEnd: 3464
    functionName: ndpi_load_ipv4_ptree
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_load_ptree_file
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_ipv4_ptree(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      const char *path, u_int16_t protocol_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/ndpi/src/lib/ndpi_main.c:3475,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:3476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptree
    - host_list
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_network[]
    constantsTouched: []
    func_position:
      end: 3485
      start: 3468
    functionDepth: 2
    functionLinenumber: 3468
    functionLinenumberEnd: 3485
    functionName: ndpi_init_ptree_ipv4
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - add_to_ptree
    - htonl
    linkageType: ''
    returnType: void
    signature: void ndpi_init_ptree_ipv4(ndpi_patricia_tree_t *ptree, ndpi_network
      host_list[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:3498,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:3500,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:3504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ndpi_str
    - ptree
    - host_list
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_patricia_tree_t*
    - ndpi_network6[]
    constantsTouched: []
    func_position:
      end: 3508
      start: 3489
    functionDepth: 2
    functionLinenumber: 3489
    functionLinenumberEnd: 3508
    functionName: ndpi_init_ptree_ipv6
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    - inet_pton
    - add_to_ptree
    linkageType: ''
    returnType: void
    signature: "void ndpi_init_ptree_ipv6(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t\t
      ndpi_patricia_tree_t *ptree, ndpi_network6 host_list[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:3536,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3538,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3542,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3542,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3543,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3545,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3545,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3546,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:3548,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:3560,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:3562,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:3564,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:3571,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:3575,1
    - Dst: getaddrinfo
      Src: /src/ndpi/src/lib/ndpi_main.c:3590,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:3597,1
    - Dst: freeaddrinfo
      Src: /src/ndpi/src/lib/ndpi_main.c:3604,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:3608,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:3612,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:3614,1
    - Dst: getaddrinfo
      Src: /src/ndpi/src/lib/ndpi_main.c:3617,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:3624,1
    - Dst: freeaddrinfo
      Src: /src/ndpi/src/lib/ndpi_main.c:3631,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:3635,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:3639,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_main.c:3650,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:3659,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_main.c:3663,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 100
    argCount: 4
    argNames:
    - ndpi_str
    - value
    - protocol_id
    - is_ipv6
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int16_t
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 3675
      start: 3512
    functionDepth: 2
    functionLinenumber: 3512
    functionLinenumberEnd: 3675
    functionName: ndpi_add_host_ip_subprotocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memset
    - freeaddrinfo
    - memcpy
    - atoi
    - add_to_ptree
    - ndpi_malloc
    - getaddrinfo
    - htons
    - strrchr
    - strchr
    - inet_pton
    linkageType: ''
    returnType: int
    signature: "int ndpi_add_host_ip_subprotocol(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\tchar *value, u_int16_t protocol_id,\n\t\t\t\t\tu_int8_t
      is_ipv6)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (*__ndpi_flow_malloc)(size_t size)
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 3679
      start: 3677
    functionDepth: 0
    functionLinenumber: 3677
    functionLinenumberEnd: 3679
    functionName: set_ndpi_flow_malloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_ndpi_flow_malloc(void *(*__ndpi_flow_malloc)(size_t size))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3683
      start: 3681
    functionDepth: 0
    functionLinenumber: 3681
    functionLinenumberEnd: 3683
    functionName: set_ndpi_flow_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_ndpi_flow_free(void (*__ndpi_flow_free)(void *ptr))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:3691,1
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_main.c:3692,1
    - Dst: va_start
      Src: /src/ndpi/src/lib/ndpi_main.c:3694,1
    - Dst: ndpi_vsnprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:3695,1
    - Dst: va_end
      Src: /src/ndpi/src/lib/ndpi_main.c:3696,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:3701,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:3703,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 7
    argNames:
    - proto
    - ndpi_str
    - log_level
    - file_name
    - func_name
    - line_number
    - format
    argTypes:
    - u_int16_t
    - struct ndpi_detection_module_struct*
    - ndpi_log_level_t
    - char*
    - char*
    - unsigned int
    - char*
    constantsTouched: []
    func_position:
      end: 3711
      start: 3686
    functionDepth: 1
    functionLinenumber: 3686
    functionLinenumberEnd: 3711
    functionName: ndpi_debug_printf
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_bitmask_is_set
    - va_start
    - va_end
    - ndpi_get_num_internal_protocols
    - ndpi_vsnprintf
    linkageType: ''
    returnType: void
    signature: "void ndpi_debug_printf(u_int16_t proto, struct ndpi_detection_module_struct
      *ndpi_str, ndpi_log_level_t log_level,\n                       const char *file_name,
      const char *func_name, unsigned int line_number, const char *format, ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_str
    - ndpi_debug_printf
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_debug_function_ptr
    constantsTouched: []
    func_position:
      end: 3724
      start: 3716
    functionDepth: 0
    functionLinenumber: 3716
    functionLinenumberEnd: 3724
    functionName: set_ndpi_debug_function
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_ndpi_debug_function(struct ndpi_detection_module_struct *ndpi_str,
      ndpi_debug_function_ptr ndpi_debug_printf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:3873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 3876
      start: 3867
    functionDepth: 0
    functionLinenumber: 3867
    functionLinenumberEnd: 3876
    functionName: free_ptree_data
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void free_ptree_data(void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_main.c:3882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3894
      start: 3878
    functionDepth: 0
    functionLinenumber: 3878
    functionLinenumberEnd: 3894
    functionName: ndpi_global_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    linkageType: ''
    returnType: struct ndpi_global_context
    signature: struct ndpi_global_context *ndpi_global_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:3908,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:3910,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:3912,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:3914,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:3916,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:3918,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:3920,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:3922,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:3924,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - g_ctx
    argTypes:
    - struct ndpi_global_context*
    constantsTouched: []
    func_position:
      end: 3926
      start: 3898
    functionDepth: 1
    functionLinenumber: 3898
    functionLinenumberEnd: 3926
    functionName: ndpi_global_deinit
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_lru_free_cache
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_global_deinit(struct ndpi_global_context *g_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module_ext
      Src: /src/ndpi/src/lib/ndpi_main.c:3932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g_ctx
    argTypes:
    - struct ndpi_global_context*
    constantsTouched: []
    func_position:
      end: 3933
      start: 3930
    functionDepth: 1
    functionLinenumber: 3930
    functionLinenumberEnd: 3933
    functionName: ndpi_init_detection_module
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 3
    functionsReached:
    - ndpi_init_detection_module_ext
    linkageType: ''
    returnType: struct ndpi_detection_module_struct
    signature: struct ndpi_detection_module_struct *ndpi_init_detection_module(struct
      ndpi_global_context *g_ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_main.c:3939,1
    - Dst: WSAStartup
      Src: /src/ndpi/src/lib/ndpi_main.c:3953,1
    - Dst: MAKEWORD
      Src: /src/ndpi/src/lib/ndpi_main.c:3953,1
    - Dst: set_ndpi_debug_function
      Src: /src/ndpi/src/lib/ndpi_main.c:3957,1
    - Dst: ndpi_ptree_create
      Src: /src/ndpi/src/lib/ndpi_main.c:3960,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:3961,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:3962,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:3966,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:3967,1
    - Dst: ndpi_ptree_create
      Src: /src/ndpi/src/lib/ndpi_main.c:3969,1
    - Dst: ndpi_bitmask_clone
      Src: /src/ndpi/src/lib/ndpi_main.c:3974,1
    - Dst: ac_automata_init
      Src: /src/ndpi/src/lib/ndpi_main.c:3983,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:3985,1
    - Dst: ac_automata_init
      Src: /src/ndpi/src/lib/ndpi_main.c:3989,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:3991,1
    - Dst: ac_automata_init
      Src: /src/ndpi/src/lib/ndpi_main.c:3995,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:3997,1
    - Dst: load_common_alpns
      Src: /src/ndpi/src/lib/ndpi_main.c:4001,1
    - Dst: ac_automata_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4003,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:4005,1
    - Dst: ndpi_load_tcp_fingerprints
      Src: /src/ndpi/src/lib/ndpi_main.c:4012,1
    - Dst: ndpi_domain_classify_alloc
      Src: /src/ndpi/src/lib/ndpi_main.c:4016,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:4018,1
    - Dst: ndpi_domain_classify_alloc
      Src: /src/ndpi/src/lib/ndpi_main.c:4021,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:4023,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/src/lib/ndpi_main.c:4027,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/src/lib/ndpi_main.c:4028,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/src/lib/ndpi_main.c:4029,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/src/lib/ndpi_main.c:4030,1
    - Dst: ac_automata_feature
      Src: /src/ndpi/src/lib/ndpi_main.c:4033,1
    - Dst: ac_automata_feature
      Src: /src/ndpi/src/lib/ndpi_main.c:4036,1
    - Dst: ac_automata_feature
      Src: /src/ndpi/src/lib/ndpi_main.c:4039,1
    - Dst: ac_automata_feature
      Src: /src/ndpi/src/lib/ndpi_main.c:4042,1
    - Dst: ac_automata_name
      Src: /src/ndpi/src/lib/ndpi_main.c:4047,1
    - Dst: ac_automata_name
      Src: /src/ndpi/src/lib/ndpi_main.c:4050,1
    - Dst: ac_automata_name
      Src: /src/ndpi/src/lib/ndpi_main.c:4053,1
    - Dst: ac_automata_name
      Src: /src/ndpi/src/lib/ndpi_main.c:4056,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4060,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:4061,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:4066,1
    - Dst: ndpi_init_protocol_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:4071,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:4081,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4083,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:4085,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:4086,1
    - Dst: set_default_config
      Src: /src/ndpi/src/lib/ndpi_main.c:4092,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4094,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:4095,1
    - Dst: ndpi_callback_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4100,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4101,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:4102,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 101
    argCount: 2
    argNames:
    - g_ctx
    - detection_bitmask
    argTypes:
    - struct ndpi_global_context*
    - struct ndpi_bitmask*
    constantsTouched: []
    func_position:
      end: 4107
      start: 3937
    functionDepth: 7
    functionLinenumber: 3937
    functionLinenumberEnd: 4107
    functionName: ndpi_init_detection_module_ext
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_ptree_create
    - ac_automata_name
    - MAKEWORD
    - ndpi_init_protocol_defaults
    - ndpi_domain_classify_alloc
    - ndpi_load_tcp_fingerprints
    - NDPI_LOG_ERR
    - ac_automata_feature
    - ac_automata_init
    - ndpi_bitmask_clone
    - set_ndpi_debug_function
    - ndpi_calloc
    - load_common_alpns
    - ndpi_callback_init
    - ndpi_snprintf
    - ndpi_init_ptree_ipv4
    - ndpi_patricia_new
    - ndpi_get_num_internal_protocols
    - set_default_config
    - ndpi_init_ptree_ipv6
    - WSAStartup
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: struct ndpi_detection_module_struct
    signature: "struct ndpi_detection_module_struct *ndpi_init_detection_module_ext(struct
      ndpi_global_context *g_ctx,\n                                                                    const
      struct ndpi_bitmask *detection_bitmask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_add_host_risk_mask
      Src: /src/ndpi/src/lib/ndpi_main.c:4139,1
    - Dst: ndpi_add_host_risk_mask
      Src: /src/ndpi/src/lib/ndpi_main.c:4145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 4153
      start: 4116
    functionDepth: 1
    functionLinenumber: 4116
    functionLinenumberEnd: 4153
    functionName: ndpi_add_domain_risk_exceptions
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_add_host_risk_mask
    linkageType: ''
    returnType: void
    signature: void ndpi_add_domain_risk_exceptions(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_main.c:4159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_str
    - protoId
    argTypes:
    - struct ndpi_detection_module_struct*
    - int
    constantsTouched: []
    func_position:
      end: 4162
      start: 4157
    functionDepth: 1
    functionLinenumber: 4157
    functionLinenumberEnd: 4162
    functionName: is_ip_list_enabled
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmask_is_set
    linkageType: ''
    returnType: int
    signature: int is_ip_list_enabled(struct ndpi_detection_module_struct *ndpi_str,
      int protoId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_main.c:4168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_str
    - protoId
    argTypes:
    - struct ndpi_detection_module_struct*
    - int
    constantsTouched: []
    func_position:
      end: 4171
      start: 4166
    functionDepth: 1
    functionLinenumber: 4166
    functionLinenumberEnd: 4171
    functionName: is_monitoring_enabled
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmask_is_set
    linkageType: ''
    returnType: int
    signature: int is_monitoring_enabled(struct ndpi_detection_module_struct *ndpi_str,
      int protoId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_enable_loaded_categories
      Src: /src/ndpi/src/lib/ndpi_main.c:4185,1
    - Dst: validate_protocol_initialization
      Src: /src/ndpi/src/lib/ndpi_main.c:4187,1
    - Dst: gcry_control
      Src: /src/ndpi/src/lib/ndpi_main.c:4190,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4193,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:4195,1
    - Dst: gcry_control
      Src: /src/ndpi/src/lib/ndpi_main.c:4197,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:4200,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4203,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4204,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4205,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4207,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4208,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4209,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4211,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4212,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4213,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4215,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4216,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4217,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4219,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4220,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4221,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4223,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4224,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4225,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4227,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4228,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4229,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4231,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4232,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4233,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4235,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4236,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4237,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4239,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4240,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4241,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4243,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4244,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4245,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4247,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4248,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4249,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4251,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4252,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4253,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4255,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4256,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4257,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4259,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4260,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4261,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4263,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4264,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4265,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4267,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4268,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4269,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4271,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4272,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4273,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4275,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4276,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4277,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4279,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4280,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4281,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4283,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4284,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4285,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4287,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4288,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4289,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4291,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4292,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4293,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4295,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4296,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4297,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4299,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4300,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4301,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4303,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4304,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4305,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4307,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4308,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4309,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4311,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4312,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4313,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4315,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4316,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4317,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4319,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4320,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4321,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4323,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4324,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4325,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4327,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4328,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4329,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4331,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4332,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4333,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4335,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4336,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4337,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4339,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4340,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4341,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4343,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4344,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4345,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4347,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4348,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4349,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4351,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4352,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4353,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4355,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4356,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4357,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4359,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4360,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4361,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4363,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4364,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4365,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4367,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4368,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4369,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4371,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4372,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4373,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4375,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4376,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4377,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4379,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4380,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4381,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4383,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4384,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4385,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4387,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4388,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4389,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4391,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4392,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4393,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4395,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4396,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4397,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4399,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4400,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4401,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4403,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4404,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4405,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4407,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4408,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4409,1
    - Dst: is_ip_list_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:4411,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4412,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4413,1
    - Dst: ndpi_ptree_create
      Src: /src/ndpi/src/lib/ndpi_main.c:4417,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4418,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4423,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4424,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4428,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4429,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4433,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4434,1
    - Dst: ndpi_init_ptree_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:4436,1
    - Dst: ndpi_init_ptree_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:4437,1
    - Dst: ndpi_add_domain_risk_exceptions
      Src: /src/ndpi/src/lib/ndpi_main.c:4441,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4446,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4451,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4455,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4463,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4468,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4472,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4480,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4485,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4489,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4496,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4501,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4505,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4512,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4517,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4521,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4528,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4533,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4537,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4544,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4549,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4553,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4561,1
    - Dst: ndpi_lru_cache_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4566,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:4570,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/ndpi_main.c:4581,1
    - Dst: ac_automata_finalize
      Src: /src/ndpi/src/lib/ndpi_main.c:4585,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 368
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 4599
      start: 4175
    functionDepth: 3
    functionLinenumber: 4175
    functionLinenumberEnd: 4599
    functionName: ndpi_finalize_initialization
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 3
    functionsReached:
    - ndpi_ptree_create
    - ndpi_add_domain_risk_exceptions
    - ndpi_lru_cache_init
    - NDPI_LOG_ERR
    - is_ip_list_enabled
    - ndpi_init_ptree_ipv4
    - ac_automata_finalize
    - NDPI_ARRAY_LENGTH
    - NDPI_LOG_DBG
    - ndpi_init_ptree_ipv6
    - ndpi_enable_loaded_categories
    - gcry_control
    - validate_protocol_initialization
    linkageType: ''
    returnType: int
    signature: int ndpi_finalize_initialization(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4606
      start: 4604
    functionDepth: 1
    functionLinenumber: 4604
    functionLinenumberEnd: 4606
    functionName: ndpi_init_automa
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ac_automata_init
    linkageType: ''
    returnType: void
    signature: void *ndpi_init_automa(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_init
      Src: /src/ndpi/src/lib/ndpi_main.c:4611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4612
      start: 4610
    functionDepth: 1
    functionLinenumber: 4610
    functionLinenumberEnd: 4612
    functionName: ndpi_init_automa_domain
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ac_automata_init
    linkageType: ''
    returnType: void
    signature: void *ndpi_init_automa_domain(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:4624,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:4627,1
    - Dst: ac_automata_add
      Src: /src/ndpi/src/lib/ndpi_main.c:4629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - _automa
    - str
    - num
    argTypes:
    - void*
    - char*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 4631
      start: 4616
    functionDepth: 1
    functionLinenumber: 4616
    functionLinenumberEnd: 4631
    functionName: ndpi_add_string_value_to_automa
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - memset
    - strlen
    - ac_automata_add
    linkageType: ''
    returnType: int
    signature: int ndpi_add_string_value_to_automa(void *_automa, char *str, u_int32_t
      num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_add_string_value_to_automa
      Src: /src/ndpi/src/lib/ndpi_main.c:4636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _automa
    - str
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 4637
      start: 4635
    functionDepth: 2
    functionLinenumber: 4635
    functionLinenumberEnd: 4637
    functionName: ndpi_add_string_to_automa
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_add_string_value_to_automa
    linkageType: ''
    returnType: int
    signature: int ndpi_add_string_to_automa(void *_automa, char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_release
      Src: /src/ndpi/src/lib/ndpi_main.c:4642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _automa
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 4643
      start: 4641
    functionDepth: 1
    functionLinenumber: 4641
    functionLinenumberEnd: 4643
    functionName: ndpi_free_automa
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ac_automata_release
    linkageType: ''
    returnType: void
    signature: void ndpi_free_automa(void *_automa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_finalize
      Src: /src/ndpi/src/lib/ndpi_main.c:4648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _automa
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 4649
      start: 4647
    functionDepth: 1
    functionLinenumber: 4647
    functionLinenumberEnd: 4649
    functionName: ndpi_finalize_automa
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ac_automata_finalize
    linkageType: ''
    returnType: void
    signature: void ndpi_finalize_automa(void *_automa)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:4656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - _automa
    - stats
    argTypes:
    - void*
    - struct ndpi_automa_stats*
    constantsTouched: []
    func_position:
      end: 4659
      start: 4653
    functionDepth: 1
    functionLinenumber: 4653
    functionLinenumberEnd: 4659
    functionName: ndpi_automa_get_stats
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ac_automata_get_stats
    linkageType: ''
    returnType: void
    signature: void ndpi_automa_get_stats(void *_automa, struct ndpi_automa_stats
      *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_automa_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:4672,1
    - Dst: ndpi_automa_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:4676,1
    - Dst: ndpi_automa_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:4680,1
    - Dst: ndpi_automa_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:4684,1
    - Dst: ndpi_automa_get_stats
      Src: /src/ndpi/src/lib/ndpi_main.c:4688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - ndpi_struct
    - automa_type
    - stats
    argTypes:
    - struct ndpi_detection_module_struct*
    - automa_type
    - struct ndpi_automa_stats*
    constantsTouched: []
    func_position:
      end: 4694
      start: 4663
    functionDepth: 2
    functionLinenumber: 4663
    functionLinenumberEnd: 4694
    functionName: ndpi_get_automa_stats
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_automa_get_stats
    linkageType: ''
    returnType: int
    signature: "int ndpi_get_automa_stats(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \ automa_type automa_type,\n\t\t\t  struct ndpi_automa_stats *stats)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:4713,1
    - Dst: ac_automata_search
      Src: /src/ndpi/src/lib/ndpi_main.c:4720,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 6
    argNames:
    - automa
    - string_to_match
    - string_len
    - protocol_id
    - category
    - breed
    argTypes:
    - AC_AUTOMATA_t*
    - char*
    - size_t
    - u_int32_t*
    - ndpi_protocol_category_t*
    - ndpi_protocol_breed_t*
    constantsTouched: []
    func_position:
      end: 4732
      start: 4698
    functionDepth: 1
    functionLinenumber: 4698
    functionLinenumberEnd: 4732
    functionName: ndpi_match_string_common
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ac_automata_search
    - printf
    linkageType: ''
    returnType: int
    signature: "int ndpi_match_string_common(AC_AUTOMATA_t *automa, char *string_to_match,size_t
      string_len,\n\t\t\t\t    u_int32_t *protocol_id, ndpi_protocol_category_t *category,\n\t\t\t\t
      \   ndpi_protocol_breed_t *breed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_match_string_common
      Src: /src/ndpi/src/lib/ndpi_main.c:4743,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:4744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - _automa
    - string_to_match
    argTypes:
    - void*
    - char*
    constantsTouched: []
    func_position:
      end: 4749
      start: 4736
    functionDepth: 2
    functionLinenumber: 4736
    functionLinenumberEnd: 4749
    functionName: ndpi_match_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_match_string_common
    - strlen
    linkageType: ''
    returnType: int
    signature: int ndpi_match_string(void *_automa, char *string_to_match)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - automa
    - string_to_match
    - match_len
    - protocol_id
    - category
    - breed
    argTypes:
    - void*
    - char*
    - u_int
    - u_int16_t*
    - ndpi_protocol_category_t*
    - ndpi_protocol_breed_t*
    constantsTouched: []
    func_position:
      end: 4763
      start: 4753
    functionDepth: 0
    functionLinenumber: 4753
    functionLinenumberEnd: 4763
    functionName: ndpi_match_string_protocol_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ndpi_match_string_protocol_id(void *automa, char *string_to_match,\n\t\t\t\t
      \ u_int match_len, u_int16_t *protocol_id,\n\t\t\t\t  ndpi_protocol_category_t
      *category,\n\t\t\t\t  ndpi_protocol_breed_t *breed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - automa
    - string_to_match
    - match_len
    - num
    argTypes:
    - void*
    - char*
    - u_int
    - u_int32_t*
    constantsTouched: []
    func_position:
      end: 4773
      start: 4767
    functionDepth: 0
    functionLinenumber: 4767
    functionLinenumberEnd: 4773
    functionName: ndpi_match_string_value
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ndpi_match_string_value(void *automa, char *string_to_match,\n\t\t\t
      \   u_int match_len, u_int32_t *num)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_enable_loaded_categories
      Src: /src/ndpi/src/lib/ndpi_main.c:4786,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:4789,1
    - Dst: ndpi_domain_classify_hostname
      Src: /src/ndpi/src/lib/ndpi_main.c:4792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ndpi_str
    - name
    - name_len
    - category
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int
    - ndpi_protocol_category_t*
    constantsTouched: []
    func_position:
      end: 4798
      start: 4778
    functionDepth: 2
    functionLinenumber: 4778
    functionLinenumberEnd: 4798
    functionName: ndpi_match_custom_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_domain_classify_hostname
    - ndpi_enable_loaded_categories
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ndpi_match_custom_category(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t       char *name, u_int name_len,\n                               ndpi_protocol_category_t
      *category)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:4810,1
    - Dst: ndpi_enable_loaded_categories
      Src: /src/ndpi/src/lib/ndpi_main.c:4815,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:4818,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:4824,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:4829,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:4833,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:4835,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:4842,1
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:4844,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:4846,1
    - Dst: ndpi_match_custom_category
      Src: /src/ndpi/src/lib/ndpi_main.c:4855,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - ndpi_str
    - name_or_ip
    - name_len
    - id
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int
    - ndpi_protocol_category_t*
    constantsTouched: []
    func_position:
      end: 4857
      start: 4802
    functionDepth: 3
    functionLinenumber: 4802
    functionLinenumberEnd: 4857
    functionName: ndpi_get_custom_category_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_patricia_search_best
    - ndpi_min
    - ndpi_match_custom_category
    - strrchr
    - ndpi_fill_prefix_v4
    - ndpi_fill_prefix_v6
    - ndpi_enable_loaded_categories
    - inet_pton
    linkageType: ''
    returnType: int
    signature: "int ndpi_get_custom_category_match(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t   char *name_or_ip, u_int name_len,\n\t\t\t\t   ndpi_protocol_category_t
      *id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4865,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4866,1
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4868,1
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4869,1
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4870,1
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4871,1
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4872,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4876,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4878,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4880,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4882,1
    - Dst: nbpf_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4886,1
    - Dst: cache_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4891,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:4895,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:4899,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:4903,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:4907,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:4911,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:4915,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:4919,1
    - Dst: ndpi_lru_free_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:4923,1
    - Dst: ndpi_ptree_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:4925,1
    - Dst: ndpi_ptree_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:4926,1
    - Dst: ndpi_ptree_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:4927,1
    - Dst: ndpi_tdestroy
      Src: /src/ndpi/src/lib/ndpi_main.c:4929,1
    - Dst: ndpi_tdestroy
      Src: /src/ndpi/src/lib/ndpi_main.c:4930,1
    - Dst: ac_automata_release
      Src: /src/ndpi/src/lib/ndpi_main.c:4933,1
    - Dst: ac_automata_release
      Src: /src/ndpi/src/lib/ndpi_main.c:4937,1
    - Dst: ac_automata_release
      Src: /src/ndpi/src/lib/ndpi_main.c:4941,1
    - Dst: ndpi_hash_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4944,1
    - Dst: ndpi_hash_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4947,1
    - Dst: ndpi_hash_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4950,1
    - Dst: ndpi_domain_classify_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4952,1
    - Dst: ndpi_domain_classify_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4953,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:4956,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:4959,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:4962,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:4965,1
    - Dst: ac_automata_release
      Src: /src/ndpi/src/lib/ndpi_main.c:4968,1
    - Dst: ac_automata_release
      Src: /src/ndpi/src/lib/ndpi_main.c:4972,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4981,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4983,1
    - Dst: ndpi_free_geoip
      Src: /src/ndpi/src/lib/ndpi_main.c:4992,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4995,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:4998,1
    - Dst: ndpi_hash_free
      Src: /src/ndpi/src/lib/ndpi_main.c:5001,1
    - Dst: ndpi_term_address_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:5004,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:5006,1
    - Dst: WSACleanup
      Src: /src/ndpi/src/lib/ndpi_main.c:5010,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 94
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 5012
      start: 4861
    functionDepth: 2
    functionLinenumber: 4861
    functionLinenumberEnd: 5012
    functionName: ndpi_exit_detection_module
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 3
    functionsReached:
    - ndpi_hash_free
    - ac_automata_release
    - ndpi_free
    - ndpi_term_address_cache
    - ndpi_lru_free_cache
    - ndpi_domain_classify_free
    - nbpf_free
    - ndpi_ptree_destroy
    - ndpi_free_geoip
    - ndpi_tdestroy
    - cache_free
    - ndpi_patricia_destroy
    - WSACleanup
    - ndpi_bitmask_free
    linkageType: ''
    returnType: void
    signature: void ndpi_exit_detection_module(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_tfind
      Src: /src/ndpi/src/lib/ndpi_main.c:5026,1
    - Dst: ndpi_tfind
      Src: /src/ndpi/src/lib/ndpi_main.c:5031,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - ndpi_str
    - proto
    - sport
    - dport
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int8_t
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 5040
      start: 5016
    functionDepth: 1
    functionLinenumber: 5016
    functionLinenumberEnd: 5040
    functionName: ndpi_get_guessed_protocol_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_tfind
    linkageType: ''
    returnType: default_ports_tree_node_t
    signature: "default_ports_tree_node_t *ndpi_get_guessed_protocol_id(struct ndpi_detection_module_struct
      *ndpi_str,\n                                                               u_int8_t
      proto, u_int16_t sport, u_int16_t dport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_guessed_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:5049,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5064,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5068,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5072,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5076,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5080,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5084,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5088,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5092,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5096,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5100,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5104,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5108,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:5112,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    argCount: 5
    argNames:
    - ndpi_str
    - proto
    - sport
    - dport
    - user_defined_proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int8_t
    - u_int16_t
    - u_int16_t
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 5119
      start: 5044
    functionDepth: 2
    functionLinenumber: 5044
    functionLinenumberEnd: 5119
    functionName: guess_protocol_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_guessed_protocol_id
    - is_proto_enabled
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t guess_protocol_id(struct ndpi_detection_module_struct *ndpi_str,\n
      \                                  u_int8_t proto, u_int16_t sport, u_int16_t
      dport, u_int8_t *user_defined_proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 5127
      start: 5123
    functionDepth: 0
    functionLinenumber: 5123
    functionLinenumberEnd: 5127
    functionName: ndpi_get_num_protocols
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int ndpi_get_num_protocols(struct ndpi_detection_module_struct *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5133
      start: 5131
    functionDepth: 0
    functionLinenumber: 5131
    functionLinenumberEnd: 5133
    functionName: ndpi_get_num_internal_protocols
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int ndpi_get_num_internal_protocols(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:5141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_str
    - proto_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 5142
      start: 5137
    functionDepth: 1
    functionLinenumber: 5137
    functionLinenumberEnd: 5142
    functionName: ndpi_is_custom_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 4
    functionsReached:
    - ndpi_get_num_internal_protocols
    linkageType: ''
    returnType: int
    signature: int ndpi_is_custom_protocol(struct ndpi_detection_module_struct *ndpi_str,
      u_int16_t proto_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/ndpi/src/lib/ndpi_main.c:5152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - sp
    - sep
    argTypes:
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 5157
      start: 5147
    functionDepth: 0
    functionLinenumber: 5147
    functionLinenumberEnd: 5157
    functionName: strsep
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strcspn
    linkageType: ''
    returnType: char
    signature: char *strsep(char **sp, char *sep)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5168,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5174,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:5177,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:5182,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:5184,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:5185,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:5189,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:5191,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:5192,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - ndpi_str
    - ip
    - mask
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - ndpi_risk
    constantsTouched: []
    func_position:
      end: 5202
      start: 5162
    functionDepth: 2
    functionLinenumber: 5162
    functionLinenumberEnd: 5202
    functionName: ndpi_add_ip_risk_mask
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - atoi
    - add_to_ptree
    - strlen
    - inet_pton
    - strtok_r
    linkageType: ''
    returnType: int
    signature: "int ndpi_add_ip_risk_mask(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \ char *ip, ndpi_risk mask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5224,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_main.c:5232,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:5236,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5238,1
    - Dst: ndpi_domain_level
      Src: /src/ndpi/src/lib/ndpi_main.c:5243,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/ndpi_main.c:5245,1
    - Dst: ac_automata_add
      Src: /src/ndpi/src/lib/ndpi_main.c:5247,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:5250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - ndpi_str
    - host
    - mask
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - ndpi_risk
    constantsTouched: []
    func_position:
      end: 5257
      start: 5206
    functionDepth: 1
    functionLinenumber: 5206
    functionLinenumberEnd: 5257
    functionName: ndpi_add_host_risk_mask
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - memset
    - ndpi_free
    - ndpi_strdup
    - memchr
    - ac_automata_add
    - ndpi_domain_level
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ndpi_add_host_risk_mask(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \   char *host, ndpi_risk mask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:5267,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:5274,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:5276,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_main.c:5279,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_main.c:5281,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:5284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_str
    - dn
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 5292
      start: 5261
    functionDepth: 1
    functionLinenumber: 5261
    functionLinenumberEnd: 5292
    functionName: ndpi_add_trusted_issuer_dn
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    - ndpi_strdup
    - ndpi_malloc
    - ndpi_snprintf
    - strchr
    linkageType: ''
    returnType: int
    signature: int ndpi_add_trusted_issuer_dn(struct ndpi_detection_module_struct
      *ndpi_str, char *dn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:5306,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:5311,1
    - Dst: strtok
      Src: /src/ndpi/src/lib/ndpi_main.c:5312,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5315,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5319,1
    - Dst: ndpi_add_trusted_issuer_dn
      Src: /src/ndpi/src/lib/ndpi_main.c:5320,1
    - Dst: strtok
      Src: /src/ndpi/src/lib/ndpi_main.c:5320,1
    - Dst: strtok
      Src: /src/ndpi/src/lib/ndpi_main.c:5322,1
    - Dst: atoll
      Src: /src/ndpi/src/lib/ndpi_main.c:5327,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5329,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5330,1
    - Dst: ndpi_add_ip_risk_mask
      Src: /src/ndpi/src/lib/ndpi_main.c:5331,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5332,1
    - Dst: ndpi_add_host_risk_mask
      Src: /src/ndpi/src/lib/ndpi_main.c:5333,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5338,1
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/src/lib/ndpi_main.c:5358,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/src/lib/ndpi_main.c:5387,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5389,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:5393,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5398,1
    - Dst: ndpi_add_user_proto_id_mapping
      Src: /src/ndpi/src/lib/ndpi_main.c:5403,1
    - Dst: strsep
      Src: /src/ndpi/src/lib/ndpi_main.c:5410,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5411,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5419,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5421,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5429,1
    - Dst: ndpi_set_proto_defaults
      Src: /src/ndpi/src/lib/ndpi_main.c:5435,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:5442,1
    - Dst: ndpi_build_default_ports
      Src: /src/ndpi/src/lib/ndpi_main.c:5443,1
    - Dst: strsep
      Src: /src/ndpi/src/lib/ndpi_main.c:5450,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5456,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5458,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5460,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5462,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5464,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5471,1
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_main.c:5477,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5479,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5484,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5492,1
    - Dst: nbpf_parse
      Src: /src/ndpi/src/lib/ndpi_main.c:5499,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5500,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:5507,1
    - Dst: sscanf
      Src: /src/ndpi/src/lib/ndpi_main.c:5516,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:5519,1
    - Dst: addDefaultPort
      Src: /src/ndpi/src/lib/ndpi_main.c:5521,1
    - Dst: ndpi_add_host_url_subprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:5531,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 143
    argCount: 2
    argNames:
    - ndpi_str
    - rule
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 5536
      start: 5295
    functionDepth: 3
    functionLinenumber: 5295
    functionLinenumberEnd: 5536
    functionName: ndpi_handle_rule
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strncmp
    - atoi
    - atoll
    - ndpi_add_host_risk_mask
    - strlen
    - ndpi_add_user_proto_id_mapping
    - NDPI_LOG_DBG
    - strrchr
    - ndpi_strtonum
    - ndpi_add_trusted_issuer_dn
    - NDPI_LOG_ERR
    - ndpi_set_proto_defaults
    - NDPI_LOG_INFO
    - strcmp
    - nbpf_parse
    - ndpi_snprintf
    - sscanf
    - ndpi_add_host_url_subprotocol
    - addDefaultPort
    - ndpi_add_ip_risk_mask
    - ndpi_get_proto_by_name
    - strtok
    - ndpi_build_default_ports
    - tolower
    - strsep
    linkageType: ''
    returnType: int
    signature: "int ndpi_handle_rule(struct ndpi_detection_module_struct *ndpi_str,\n\t\t
      \           char *rule)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_main.c:5559,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5564,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:5580,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:5582,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:5584,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5587,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:5592,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/src/lib/ndpi_main.c:5594,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5596,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5603,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 2
    argNames:
    - ndpi_str
    - fd
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    constantsTouched: []
    func_position:
      end: 5607
      start: 5550
    functionDepth: 1
    functionLinenumber: 5550
    functionLinenumberEnd: 5607
    functionName: load_config_file_fd
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    - ndpi_set_config
    - fgets
    - strlen
    - strtok_r
    linkageType: ''
    returnType: int
    signature: int load_config_file_fd(struct ndpi_detection_module_struct *ndpi_str,
      FILE *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_main.c:5628,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5630,1
    - Dst: strerror
      Src: /src/ndpi/src/lib/ndpi_main.c:5630,1
    - Dst: load_categories_file_fd
      Src: /src/ndpi/src/lib/ndpi_main.c:5634,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_main.c:5636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ndpi_str
    - path
    - user_data
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 5639
      start: 5620
    functionDepth: 1
    functionLinenumber: 5620
    functionLinenumberEnd: 5639
    functionName: ndpi_load_categories_file
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strerror
    - NDPI_LOG_ERR
    - fclose
    - fopen
    - load_categories_file_fd
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_categories_file(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t      const char *path, void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_main.c:5652,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5657,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:5663,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:5666,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/src/lib/ndpi_main.c:5670,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - ndpi_str
    - fd
    - user_data
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    - void*
    constantsTouched: []
    func_position:
      end: 5690
      start: 5643
    functionDepth: 1
    functionLinenumber: 5643
    functionLinenumberEnd: 5690
    functionName: load_categories_file_fd
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - strtok_r
    - strlen
    - ndpi_strtonum
    - fgets
    linkageType: ''
    returnType: int
    signature: "int load_categories_file_fd(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \   FILE *fd, void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_main.c:5706,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5708,1
    - Dst: strerror
      Src: /src/ndpi/src/lib/ndpi_main.c:5708,1
    - Dst: load_category_file_fd
      Src: /src/ndpi/src/lib/ndpi_main.c:5712,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_main.c:5714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ndpi_str
    - path
    - category_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - ndpi_protocol_category_t
    constantsTouched: []
    func_position:
      end: 5717
      start: 5698
    functionDepth: 1
    functionLinenumber: 5698
    functionLinenumberEnd: 5717
    functionName: ndpi_load_category_file
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strerror
    - NDPI_LOG_ERR
    - fclose
    - fopen
    - load_category_file_fd
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_category_file(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \   char *path, ndpi_protocol_category_t category_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_main.c:5736,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5742,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5745,1
    - Dst: ndpi_isalnum
      Src: /src/ndpi/src/lib/ndpi_main.c:5763,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5770,1
    - Dst: ndpi_load_category
      Src: /src/ndpi/src/lib/ndpi_main.c:5776,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 36
    argCount: 3
    argNames:
    - ndpi_str
    - fd
    - category_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    - ndpi_protocol_category_t
    constantsTouched: []
    func_position:
      end: 5784
      start: 5721
    functionDepth: 1
    functionLinenumber: 5721
    functionLinenumberEnd: 5784
    functionName: load_category_file_fd
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - NDPI_LOG_ERR
    - ndpi_load_category
    - ndpi_isalnum
    - fgets
    - strlen
    linkageType: ''
    returnType: int
    signature: "int load_category_file_fd(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \ FILE *fd, ndpi_protocol_category_t category_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_main.c:5803,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:5809,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5812,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:5828,1
    - Dst: ndpi_add_host_ip_subprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:5829,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:5833,1
    - Dst: ndpi_add_host_ip_subprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:5835,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 3
    argNames:
    - ndpi_str
    - fd
    - protocol_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 5850
      start: 5788
    functionDepth: 3
    functionLinenumber: 5788
    functionLinenumberEnd: 5850
    functionName: load_protocol_id_file_fd
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    - fgets
    - ndpi_add_host_ip_subprotocol
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: "int load_protocol_id_file_fd(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \    FILE *fd, u_int16_t protocol_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_main.c:5866,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5868,1
    - Dst: strerror
      Src: /src/ndpi/src/lib/ndpi_main.c:5868,1
    - Dst: load_protocol_id_file_fd
      Src: /src/ndpi/src/lib/ndpi_main.c:5872,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_main.c:5874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ndpi_str
    - path
    - protocol_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 5877
      start: 5858
    functionDepth: 4
    functionLinenumber: 5858
    functionLinenumberEnd: 5877
    functionName: ndpi_load_protocol_id_file
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strerror
    - NDPI_LOG_ERR
    - load_protocol_id_file_fd
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_protocol_id_file(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t       char *path, u_int16_t protocol_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/ndpi/src/lib/ndpi_main.c:5899,1
    - Dst: readdir
      Src: /src/ndpi/src/lib/ndpi_main.c:5903,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:5907,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5909,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:5913,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/src/lib/ndpi_main.c:5918,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:5924,1
    - Dst: ndpi_load_category_file
      Src: /src/ndpi/src/lib/ndpi_main.c:5926,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5927,1
    - Dst: closedir
      Src: /src/ndpi/src/lib/ndpi_main.c:5935,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - ndpi_str
    - dir_path
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 5941
      start: 5889
    functionDepth: 2
    functionLinenumber: 5889
    functionLinenumberEnd: 5941
    functionName: ndpi_load_categories_dir
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - closedir
    - NDPI_LOG_ERR
    - opendir
    - ndpi_load_category_file
    - strrchr
    - readdir
    - strcmp
    - ndpi_strtonum
    - snprintf
    - strchr
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_categories_dir(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \    char *dir_path)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/ndpi/src/lib/ndpi_main.c:5963,1
    - Dst: readdir
      Src: /src/ndpi/src/lib/ndpi_main.c:5967,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:5971,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:5973,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:5977,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/src/lib/ndpi_main.c:5982,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:5982,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:5988,1
    - Dst: ndpi_load_protocol_id_file
      Src: /src/ndpi/src/lib/ndpi_main.c:5990,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:5991,1
    - Dst: closedir
      Src: /src/ndpi/src/lib/ndpi_main.c:5999,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - ndpi_str
    - dir_path
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 6005
      start: 5953
    functionDepth: 5
    functionLinenumber: 5953
    functionLinenumberEnd: 6005
    functionName: ndpi_load_protocols_dir
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - closedir
    - NDPI_LOG_ERR
    - opendir
    - ndpi_get_num_internal_protocols
    - strrchr
    - readdir
    - ndpi_load_protocol_id_file
    - strcmp
    - ndpi_strtonum
    - snprintf
    - strchr
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_protocols_dir(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \   char *dir_path)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_init
      Src: /src/ndpi/src/lib/ndpi_main.c:6012,1
    - Dst: ac_automata_feature
      Src: /src/ndpi/src/lib/ndpi_main.c:6014,1
    - Dst: ac_automata_name
      Src: /src/ndpi/src/lib/ndpi_main.c:6015,1
    - Dst: string_to_automa
      Src: /src/ndpi/src/lib/ndpi_main.c:6018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_str
    - domain_name
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 6020
      start: 6009
    functionDepth: 2
    functionLinenumber: 6009
    functionLinenumberEnd: 6020
    functionName: ndpi_load_risky_domain
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ac_automata_name
    - ac_automata_init
    - string_to_automa
    - ac_automata_feature
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_risky_domain(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t\t
      \ char* domain_name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_main.c:6039,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6041,1
    - Dst: strerror
      Src: /src/ndpi/src/lib/ndpi_main.c:6041,1
    - Dst: load_risk_domain_file_fd
      Src: /src/ndpi/src/lib/ndpi_main.c:6045,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_main.c:6047,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_str
    - path
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 6050
      start: 6032
    functionDepth: 1
    functionLinenumber: 6032
    functionLinenumberEnd: 6050
    functionName: ndpi_load_risk_domain_file
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strerror
    - NDPI_LOG_ERR
    - fclose
    - fopen
    - load_risk_domain_file_fd
    linkageType: ''
    returnType: int
    signature: int ndpi_load_risk_domain_file(struct ndpi_detection_module_struct
      *ndpi_str, const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_main.c:6062,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:6067,1
    - Dst: ndpi_load_risky_domain
      Src: /src/ndpi/src/lib/ndpi_main.c:6074,1
    - Dst: ac_automata_finalize
      Src: /src/ndpi/src/lib/ndpi_main.c:6079,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_str
    - fd
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    constantsTouched: []
    func_position:
      end: 6082
      start: 6054
    functionDepth: 3
    functionLinenumber: 6054
    functionLinenumberEnd: 6082
    functionName: load_risk_domain_file_fd
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ac_automata_finalize
    - strlen
    - ndpi_load_risky_domain
    - fgets
    linkageType: ''
    returnType: int
    signature: int load_risk_domain_file_fd(struct ndpi_detection_module_struct *ndpi_str,
      FILE *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_main.c:6099,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6101,1
    - Dst: strerror
      Src: /src/ndpi/src/lib/ndpi_main.c:6101,1
    - Dst: load_malicious_ja4_file_fd
      Src: /src/ndpi/src/lib/ndpi_main.c:6105,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_main.c:6107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_str
    - path
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 6110
      start: 6092
    functionDepth: 1
    functionLinenumber: 6092
    functionLinenumberEnd: 6110
    functionName: ndpi_load_malicious_ja4_file
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strerror
    - NDPI_LOG_ERR
    - fclose
    - fopen
    - load_malicious_ja4_file_fd
    linkageType: ''
    returnType: int
    signature: int ndpi_load_malicious_ja4_file(struct ndpi_detection_module_struct
      *ndpi_str, const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_hash_init
      Src: /src/ndpi/src/lib/ndpi_main.c:6120,1
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_main.c:6126,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:6131,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:6138,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:6141,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6144,1
    - Dst: ndpi_hash_add_entry
      Src: /src/ndpi/src/lib/ndpi_main.c:6148,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 2
    argNames:
    - ndpi_str
    - fd
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    constantsTouched: []
    func_position:
      end: 6153
      start: 6114
    functionDepth: 1
    functionLinenumber: 6114
    functionLinenumberEnd: 6153
    functionName: load_malicious_ja4_file_fd
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_hash_init
    - NDPI_LOG_ERR
    - ndpi_hash_add_entry
    - fgets
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int load_malicious_ja4_file_fd(struct ndpi_detection_module_struct
      *ndpi_str, FILE *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_main.c:6173,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6175,1
    - Dst: strerror
      Src: /src/ndpi/src/lib/ndpi_main.c:6175,1
    - Dst: load_malicious_sha1_file_fd
      Src: /src/ndpi/src/lib/ndpi_main.c:6179,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_main.c:6181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_str
    - path
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 6184
      start: 6165
    functionDepth: 1
    functionLinenumber: 6165
    functionLinenumberEnd: 6184
    functionName: ndpi_load_malicious_sha1_file
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - load_malicious_sha1_file_fd
    - strerror
    - NDPI_LOG_ERR
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int ndpi_load_malicious_sha1_file(struct ndpi_detection_module_struct
      *ndpi_str, const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_hash_init
      Src: /src/ndpi/src/lib/ndpi_main.c:6197,1
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_main.c:6200,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:6201,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:6206,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:6209,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6219,1
    - Dst: toupper
      Src: /src/ndpi/src/lib/ndpi_main.c:6224,1
    - Dst: ndpi_hash_add_entry
      Src: /src/ndpi/src/lib/ndpi_main.c:6226,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - ndpi_str
    - fd
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    constantsTouched: []
    func_position:
      end: 6232
      start: 6188
    functionDepth: 1
    functionLinenumber: 6188
    functionLinenumberEnd: 6232
    functionName: load_malicious_sha1_file_fd
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_hash_init
    - NDPI_LOG_ERR
    - ndpi_hash_add_entry
    - toupper
    - fgets
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int load_malicious_sha1_file_fd(struct ndpi_detection_module_struct
      *ndpi_str, FILE *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_main.c:6261,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6263,1
    - Dst: strerror
      Src: /src/ndpi/src/lib/ndpi_main.c:6263,1
    - Dst: load_protocols_file_fd
      Src: /src/ndpi/src/lib/ndpi_main.c:6267,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_main.c:6269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_str
    - path
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 6272
      start: 6254
    functionDepth: 1
    functionLinenumber: 6254
    functionLinenumberEnd: 6272
    functionName: ndpi_load_protocols_file
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strerror
    - NDPI_LOG_ERR
    - fclose
    - fopen
    - load_protocols_file_fd
    linkageType: ''
    returnType: int
    signature: int ndpi_load_protocols_file(struct ndpi_detection_module_struct *ndpi_str,
      const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:6284,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6286,1
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_main.c:6294,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:6295,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:6296,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:6297,1
    - Dst: ndpi_realloc
      Src: /src/ndpi/src/lib/ndpi_main.c:6302,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6304,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:6305,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:6316,1
    - Dst: ndpi_handle_rule
      Src: /src/ndpi/src/lib/ndpi_main.c:6332,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:6333,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:6336,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 2
    argNames:
    - ndpi_str
    - fd
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    constantsTouched: []
    func_position:
      end: 6339
      start: 6276
    functionDepth: 4
    functionLinenumber: 6276
    functionLinenumberEnd: 6339
    functionName: load_protocols_file_fd
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_realloc
    - NDPI_LOG_ERR
    - ndpi_free
    - ndpi_handle_rule
    - ndpi_malloc
    - NDPI_LOG_INFO
    - fgets
    - strlen
    linkageType: ''
    returnType: int
    signature: int load_protocols_file_fd(struct ndpi_detection_module_struct *ndpi_str,
      FILE *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6360,1
    - Dst: va_start
      Src: /src/ndpi/src/lib/ndpi_main.c:6365,1
    - Dst: is_proto_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:6368,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:6369,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:6374,1
    - Dst: va_end
      Src: /src/ndpi/src/lib/ndpi_main.c:6389,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:6392,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:6394,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:6395,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:6395,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:6403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - dissector_name
    - ndpi_str
    - ndpi_selection_bitmask
    - num_protocol_ids
    argTypes:
    - char*
    - struct ndpi_detection_module_struct*
    - NDPI_SELECTION_BITMASK_PROTOCOL_SIZE
    - int
    constantsTouched: []
    func_position:
      end: 6406
      start: 6343
    functionDepth: 2
    functionLinenumber: 6343
    functionLinenumberEnd: 6406
    functionName: register_dissector
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    - memcpy
    - va_start
    - NDPI_LOG_DBG2
    - ndpi_min
    - va_end
    - NDPI_LOG_DBG
    - is_proto_enabled
    - strlen
    linkageType: ''
    returnType: void
    signature: "void register_dissector(char *dissector_name, struct ndpi_detection_module_struct
      *ndpi_str,\n                        void (*func)(struct ndpi_detection_module_struct
      *,\n                                     struct ndpi_flow_struct *flow),\n                        const
      NDPI_SELECTION_BITMASK_PROTOCOL_SIZE ndpi_selection_bitmask,\n                        int
      num_protocol_ids, ...)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_main.c:6414,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:6414,1
    - Dst: init_http_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6418,1
    - Dst: init_blizzard_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6421,1
    - Dst: init_tls_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6424,1
    - Dst: init_rtp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6427,1
    - Dst: init_rtsp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6430,1
    - Dst: init_rdp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6433,1
    - Dst: init_stun_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6436,1
    - Dst: init_sip_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6439,1
    - Dst: init_imo_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6442,1
    - Dst: init_teredo_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6445,1
    - Dst: init_edonkey_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6448,1
    - Dst: init_gnutella_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6451,1
    - Dst: init_nats_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6454,1
    - Dst: init_socks_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6457,1
    - Dst: init_irc_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6460,1
    - Dst: init_jabber_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6463,1
    - Dst: init_mail_pop_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6466,1
    - Dst: init_mail_imap_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6469,1
    - Dst: init_mail_smtp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6472,1
    - Dst: init_usenet_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6475,1
    - Dst: init_dns_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6478,1
    - Dst: init_vmware_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6481,1
    - Dst: init_non_tcp_udp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6484,1
    - Dst: init_iax_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6487,1
    - Dst: init_mgcp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6490,1
    - Dst: init_zattoo_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6493,1
    - Dst: init_qq_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6496,1
    - Dst: init_ssh_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6499,1
    - Dst: init_vnc_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6502,1
    - Dst: init_vxlan_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6505,1
    - Dst: init_teamviewer_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6508,1
    - Dst: init_dhcp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6511,1
    - Dst: init_steam_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6514,1
    - Dst: init_xbox_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6517,1
    - Dst: init_smb_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6520,1
    - Dst: init_mining_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6523,1
    - Dst: init_telnet_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6526,1
    - Dst: init_ntp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6529,1
    - Dst: init_nfs_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6532,1
    - Dst: init_ssdp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6535,1
    - Dst: init_postgres_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6538,1
    - Dst: init_mysql_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6541,1
    - Dst: init_bgp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6544,1
    - Dst: init_snmp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6547,1
    - Dst: init_icecast_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6550,1
    - Dst: init_kerberos_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6553,1
    - Dst: init_syslog_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6556,1
    - Dst: init_netbios_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6559,1
    - Dst: init_ipp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6562,1
    - Dst: init_ldap_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6565,1
    - Dst: init_xdmcp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6568,1
    - Dst: init_tftp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6571,1
    - Dst: init_mssql_tds_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6574,1
    - Dst: init_pptp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6577,1
    - Dst: init_dhcpv6_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6580,1
    - Dst: init_afp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6583,1
    - Dst: init_checkmk_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6586,1
    - Dst: init_cpha_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6589,1
    - Dst: init_nexon_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6592,1
    - Dst: init_dofus_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6595,1
    - Dst: init_crossfire_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6598,1
    - Dst: init_guildwars2_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6601,1
    - Dst: init_armagetron_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6604,1
    - Dst: init_dropbox_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6607,1
    - Dst: init_sonos_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6610,1
    - Dst: init_spotify_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6613,1
    - Dst: init_radius_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6616,1
    - Dst: init_citrix_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6619,1
    - Dst: init_hcl_notes_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6622,1
    - Dst: init_gtp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6625,1
    - Dst: init_hsrp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6628,1
    - Dst: init_dcerpc_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6631,1
    - Dst: init_netflow_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6634,1
    - Dst: init_sflow_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6637,1
    - Dst: init_h323_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6640,1
    - Dst: init_openvpn_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6643,1
    - Dst: init_noe_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6646,1
    - Dst: init_ciscovpn_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6649,1
    - Dst: init_teamspeak_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6652,1
    - Dst: init_skinny_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6655,1
    - Dst: init_rsync_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6658,1
    - Dst: init_whois_das_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6661,1
    - Dst: init_oracle_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6664,1
    - Dst: init_corba_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6667,1
    - Dst: init_rtmp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6670,1
    - Dst: init_ftp_control_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6673,1
    - Dst: init_ftp_data_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6676,1
    - Dst: init_megaco_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6679,1
    - Dst: init_resp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6682,1
    - Dst: init_zmq_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6685,1
    - Dst: init_telegram_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6688,1
    - Dst: init_quic_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6691,1
    - Dst: init_diameter_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6694,1
    - Dst: init_apple_push_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6697,1
    - Dst: init_eaq_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6700,1
    - Dst: init_kakaotalk_voice_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6703,1
    - Dst: init_mikrotik_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6706,1
    - Dst: init_mpegts_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6709,1
    - Dst: init_ubntac2_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6712,1
    - Dst: init_coap_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6715,1
    - Dst: init_mqtt_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6718,1
    - Dst: init_someip_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6721,1
    - Dst: init_rx_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6724,1
    - Dst: init_git_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6727,1
    - Dst: init_drda_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6730,1
    - Dst: init_bjnp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6733,1
    - Dst: init_smpp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6736,1
    - Dst: init_tinc_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6739,1
    - Dst: init_fix_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6742,1
    - Dst: init_nintendo_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6745,1
    - Dst: init_modbus_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6748,1
    - Dst: init_capwap_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6751,1
    - Dst: init_zabbix_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6754,1
    - Dst: init_viber_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6759,1
    - Dst: init_bittorrent_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6762,1
    - Dst: init_whatsapp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6765,1
    - Dst: init_ookla_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6768,1
    - Dst: init_amqp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6771,1
    - Dst: init_valve_sdr_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6774,1
    - Dst: init_lisp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6777,1
    - Dst: init_ajp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6780,1
    - Dst: init_memcached_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6783,1
    - Dst: init_nest_log_sink_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6786,1
    - Dst: init_wireguard_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6789,1
    - Dst: init_amazon_video_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6792,1
    - Dst: init_s7comm_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6795,1
    - Dst: init_104_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6798,1
    - Dst: init_dnp3_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6801,1
    - Dst: init_websocket_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6804,1
    - Dst: init_soap_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6807,1
    - Dst: init_dnscrypt_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6810,1
    - Dst: init_mongodb_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6813,1
    - Dst: init_among_us_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6816,1
    - Dst: init_hpvirtgrp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6819,1
    - Dst: init_genshin_impact_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6822,1
    - Dst: init_z3950_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6825,1
    - Dst: init_avast_securedns_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6828,1
    - Dst: init_cassandra_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6831,1
    - Dst: init_ethernet_ip_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6834,1
    - Dst: init_wsd_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6837,1
    - Dst: init_toca_boca_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6840,1
    - Dst: init_sd_rtn_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6843,1
    - Dst: init_raknet_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6846,1
    - Dst: init_xiaomi_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6849,1
    - Dst: init_mpegdash_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6852,1
    - Dst: init_rsh_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6855,1
    - Dst: init_ipsec_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6858,1
    - Dst: init_collectd_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6861,1
    - Dst: init_i3d_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6864,1
    - Dst: init_riotgames_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6867,1
    - Dst: init_ultrasurf_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6870,1
    - Dst: init_threema_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6873,1
    - Dst: init_alicloud_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6876,1
    - Dst: init_avast_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6879,1
    - Dst: init_softether_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6882,1
    - Dst: init_activision_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6885,1
    - Dst: init_discord_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6888,1
    - Dst: init_tivoconnect_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6891,1
    - Dst: init_kismet_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6894,1
    - Dst: init_fastcgi_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6897,1
    - Dst: init_natpmp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6900,1
    - Dst: init_syncthing_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6903,1
    - Dst: init_crynet_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6906,1
    - Dst: init_line_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6909,1
    - Dst: init_munin_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6912,1
    - Dst: init_elasticsearch_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6915,1
    - Dst: init_tuya_lp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6918,1
    - Dst: init_tplink_shp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6921,1
    - Dst: init_merakicloud_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6924,1
    - Dst: init_tailscale_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6927,1
    - Dst: init_source_engine_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6930,1
    - Dst: init_bacnet_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6933,1
    - Dst: init_oicq_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6936,1
    - Dst: init_hots_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6939,1
    - Dst: init_epicgames_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6942,1
    - Dst: init_bitcoin_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6945,1
    - Dst: init_apache_thrift_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6948,1
    - Dst: init_slp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6951,1
    - Dst: init_http2_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6954,1
    - Dst: init_haproxy_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6957,1
    - Dst: init_rmcp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6960,1
    - Dst: init_can_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6963,1
    - Dst: init_protobuf_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6966,1
    - Dst: init_ethereum_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6969,1
    - Dst: init_ptpv2_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6972,1
    - Dst: init_hart_ip_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6975,1
    - Dst: init_rtps_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6978,1
    - Dst: init_opc_ua_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6981,1
    - Dst: init_fins_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6984,1
    - Dst: init_ethersio_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6987,1
    - Dst: init_beckhoff_ads_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6990,1
    - Dst: init_iso9506_1_mms_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6993,1
    - Dst: init_ieee_c37118_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6996,1
    - Dst: init_ethersbus_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:6999,1
    - Dst: init_monero_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7002,1
    - Dst: init_profinet_io_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7005,1
    - Dst: init_hislip_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7008,1
    - Dst: init_uftp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7011,1
    - Dst: init_openflow_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7014,1
    - Dst: init_json_rpc_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7017,1
    - Dst: init_kafka_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7020,1
    - Dst: init_nomachine_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7023,1
    - Dst: init_iec62056_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7026,1
    - Dst: init_hl7_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7029,1
    - Dst: init_dicom_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7032,1
    - Dst: init_ceph_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7035,1
    - Dst: init_roughtime_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7038,1
    - Dst: init_kcp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7041,1
    - Dst: init_mumble_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7044,1
    - Dst: init_zoom_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7047,1
    - Dst: init_yojimbo_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7050,1
    - Dst: init_stomp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7053,1
    - Dst: init_radmin_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7056,1
    - Dst: init_raft_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7059,1
    - Dst: init_cip_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7062,1
    - Dst: init_gearman_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7065,1
    - Dst: init_tencent_games_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7068,1
    - Dst: init_gaijin_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7071,1
    - Dst: init_c1222_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7074,1
    - Dst: init_dlep_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7077,1
    - Dst: init_bfd_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7080,1
    - Dst: init_netease_games_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7083,1
    - Dst: init_pathofexile_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7086,1
    - Dst: init_pfcp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7089,1
    - Dst: init_flute_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7092,1
    - Dst: init_lolwildrift_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7095,1
    - Dst: init_teso_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7098,1
    - Dst: init_ldp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7101,1
    - Dst: init_knxnet_ip_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7104,1
    - Dst: init_bfcp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7107,1
    - Dst: init_iqiyi_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7110,1
    - Dst: init_egd_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7113,1
    - Dst: init_cod_mobile_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7116,1
    - Dst: init_zug_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7119,1
    - Dst: init_jrmi_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7122,1
    - Dst: init_ripe_atlas_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7125,1
    - Dst: init_cloudflare_warp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7128,1
    - Dst: init_nano_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7131,1
    - Dst: init_openwire_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7134,1
    - Dst: init_cnp_ip_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7137,1
    - Dst: init_atg_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7140,1
    - Dst: init_trdp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7143,1
    - Dst: init_lustre_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7146,1
    - Dst: init_dingtalk_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7149,1
    - Dst: init_paltalk_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7152,1
    - Dst: init_lagofast_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7155,1
    - Dst: init_gearup_booster_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7158,1
    - Dst: init_msdo_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7161,1
    - Dst: init_melsec_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7164,1
    - Dst: init_hamachi_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7167,1
    - Dst: init_glbp_dissector
      Src: /src/ndpi/src/lib/ndpi_main.c:7170,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_main.c:7181,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:7183,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7184,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7188,1
    - Dst: ndpi_enabled_callbacks_init
      Src: /src/ndpi/src/lib/ndpi_main.c:7190,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_main.c:7191,1
    - Dst: ndpi_enabled_callbacks_init
      Src: /src/ndpi/src/lib/ndpi_main.c:7206,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:7208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 277
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 7216
      start: 6410
    functionDepth: 1
    functionLinenumber: 6410
    functionLinenumberEnd: 7216
    functionName: ndpi_callback_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - init_cloudflare_warp_dissector
    - init_cassandra_dissector
    - init_viber_dissector
    - init_bgp_dissector
    - init_citrix_dissector
    - init_kafka_dissector
    - init_dlep_dissector
    - init_rdp_dissector
    - init_hart_ip_dissector
    - init_json_rpc_dissector
    - init_guildwars2_dissector
    - init_cpha_dissector
    - init_vmware_dissector
    - init_nest_log_sink_dissector
    - init_s7comm_dissector
    - init_mail_imap_dissector
    - init_vnc_dissector
    - init_profinet_io_dissector
    - init_drda_dissector
    - init_dhcpv6_dissector
    - init_roughtime_dissector
    - init_paltalk_dissector
    - init_monero_dissector
    - init_nomachine_dissector
    - init_mqtt_dissector
    - init_h323_dissector
    - init_hcl_notes_dissector
    - init_lagofast_dissector
    - init_icecast_dissector
    - init_radmin_dissector
    - init_openflow_dissector
    - init_non_tcp_udp_dissector
    - init_tftp_dissector
    - init_nintendo_dissector
    - init_lisp_dissector
    - init_crynet_dissector
    - init_hislip_dissector
    - init_cnp_ip_dissector
    - init_ajp_dissector
    - init_zattoo_dissector
    - init_collectd_dissector
    - init_blizzard_dissector
    - init_cod_mobile_dissector
    - init_capwap_dissector
    - init_msdo_dissector
    - init_eaq_dissector
    - ndpi_calloc
    - init_ultrasurf_dissector
    - init_ftp_data_dissector
    - init_beckhoff_ads_dissector
    - init_104_dissector
    - init_c1222_dissector
    - init_ftp_control_dissector
    - init_pfcp_dissector
    - init_fastcgi_dissector
    - init_apple_push_dissector
    - memcpy
    - init_fins_dissector
    - init_bfcp_dissector
    - init_megaco_dissector
    - init_ciscovpn_dissector
    - init_sip_dissector
    - init_netbios_dissector
    - init_egd_dissector
    - init_dicom_dissector
    - init_kerberos_dissector
    - init_natpmp_dissector
    - init_hots_dissector
    - init_bjnp_dissector
    - init_http2_dissector
    - init_tailscale_dissector
    - init_elasticsearch_dissector
    - init_vxlan_dissector
    - init_gnutella_dissector
    - init_nats_dissector
    - init_zoom_dissector
    - init_gaijin_dissector
    - init_toca_boca_dissector
    - init_zabbix_dissector
    - init_bacnet_dissector
    - init_hsrp_dissector
    - init_tivoconnect_dissector
    - init_i3d_dissector
    - init_rmcp_dissector
    - init_rtps_dissector
    - init_mining_dissector
    - init_whois_das_dissector
    - init_ubntac2_dissector
    - init_oracle_dissector
    - init_mgcp_dissector
    - init_rsync_dissector
    - init_cip_dissector
    - init_memcached_dissector
    - NDPI_LOG_DBG2
    - init_dropbox_dissector
    - NDPI_LOG_DBG
    - init_melsec_dissector
    - ndpi_enabled_callbacks_init
    - init_sflow_dissector
    - init_epicgames_dissector
    - init_modbus_dissector
    - init_armagetron_dissector
    - init_yojimbo_dissector
    - init_z3950_dissector
    - init_crossfire_dissector
    - init_knxnet_ip_dissector
    - init_can_dissector
    - init_mpegts_dissector
    - init_coap_dissector
    - init_teredo_dissector
    - init_afp_dissector
    - init_threema_dissector
    - init_ldap_dissector
    - init_avast_securedns_dissector
    - init_discord_dissector
    - init_usenet_dissector
    - init_radius_dissector
    - init_smb_dissector
    - init_dnscrypt_dissector
    - init_tencent_games_dissector
    - init_irc_dissector
    - init_munin_dissector
    - init_edonkey_dissector
    - init_ethersio_dissector
    - init_sonos_dissector
    - init_smpp_dissector
    - init_lustre_dissector
    - ndpi_get_num_internal_protocols
    - init_hl7_dissector
    - init_stomp_dissector
    - init_opc_ua_dissector
    - init_ethereum_dissector
    - init_genshin_impact_dissector
    - init_xiaomi_dissector
    - init_gearman_dissector
    - init_zug_dissector
    - init_openwire_dissector
    - init_dcerpc_dissector
    - ndpi_free
    - init_ntp_dissector
    - init_mongodb_dissector
    - init_rsh_dissector
    - init_source_engine_dissector
    - init_ethernet_ip_dissector
    - init_raft_dissector
    - init_jrmi_dissector
    - init_wsd_dissector
    - init_bitcoin_dissector
    - init_resp_dissector
    - init_amqp_dissector
    - init_netease_games_dissector
    - init_ethersbus_dissector
    - init_hamachi_dissector
    - init_tuya_lp_dissector
    - init_soap_dissector
    - init_openvpn_dissector
    - init_skinny_dissector
    - init_telegram_dissector
    - init_syncthing_dissector
    - init_mail_smtp_dissector
    - init_kismet_dissector
    - init_ieee_c37118_dissector
    - init_mssql_tds_dissector
    - init_bfd_dissector
    - init_fix_dissector
    - init_telnet_dissector
    - init_corba_dissector
    - init_avast_dissector
    - init_rtp_dissector
    - init_quic_dissector
    - init_raknet_dissector
    - init_jabber_dissector
    - init_line_dissector
    - init_atg_dissector
    - init_hpvirtgrp_dissector
    - init_oicq_dissector
    - init_zmq_dissector
    - init_rx_dissector
    - init_someip_dissector
    - init_ptpv2_dissector
    - init_among_us_dissector
    - init_flute_dissector
    - init_tinc_dissector
    - init_slp_dissector
    - init_mumble_dissector
    - init_dhcp_dissector
    - init_postgres_dissector
    - init_amazon_video_dissector
    - init_uftp_dissector
    - init_apache_thrift_dissector
    - init_snmp_dissector
    - init_dnp3_dissector
    - init_dingtalk_dissector
    - init_ookla_dissector
    - init_nfs_dissector
    - init_softether_dissector
    - init_mpegdash_dissector
    - init_whatsapp_dissector
    - init_kcp_dissector
    - init_teso_dissector
    - init_checkmk_dissector
    - init_teamspeak_dissector
    - init_mikrotik_dissector
    - init_dns_dissector
    - init_qq_dissector
    - init_stun_dissector
    - init_sd_rtn_dissector
    - init_rtmp_dissector
    - init_http_dissector
    - init_steam_dissector
    - init_ssh_dissector
    - init_diameter_dissector
    - init_gearup_booster_dissector
    - init_glbp_dissector
    - init_nano_dissector
    - init_nexon_dissector
    - init_git_dissector
    - init_lolwildrift_dissector
    - init_teamviewer_dissector
    - init_rtsp_dissector
    - init_iax_dissector
    - init_websocket_dissector
    - init_iso9506_1_mms_dissector
    - init_wireguard_dissector
    - init_imo_dissector
    - init_gtp_dissector
    - init_dofus_dissector
    - init_pptp_dissector
    - init_trdp_dissector
    - init_mysql_dissector
    - init_netflow_dissector
    - init_activision_dissector
    - init_tls_dissector
    - init_xbox_dissector
    - init_ipp_dissector
    - init_spotify_dissector
    - init_riotgames_dissector
    - init_kakaotalk_voice_dissector
    - init_protobuf_dissector
    - init_xdmcp_dissector
    - init_ssdp_dissector
    - init_mail_pop_dissector
    - init_syslog_dissector
    - init_socks_dissector
    - init_merakicloud_dissector
    - init_ldp_dissector
    - init_bittorrent_dissector
    - init_pathofexile_dissector
    - init_alicloud_dissector
    - init_noe_dissector
    - init_haproxy_dissector
    - init_ripe_atlas_dissector
    - init_ceph_dissector
    - init_iqiyi_dissector
    - init_valve_sdr_dissector
    - init_tplink_shp_dissector
    - init_ipsec_dissector
    - init_iec62056_dissector
    linkageType: ''
    returnType: int
    signature: int ndpi_callback_init(struct ndpi_detection_module_struct *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_str
    - idx
    argTypes:
    - struct ndpi_detection_module_struct*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 7225
      start: 7220
    functionDepth: 0
    functionLinenumber: 7220
    functionLinenumberEnd: 7225
    functionName: ndpi_proto_cb_tcp_payload
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_proto_cb_tcp_payload(const struct ndpi_detection_module_struct
      *ndpi_str, uint32_t idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_str
    - idx
    argTypes:
    - struct ndpi_detection_module_struct*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 7236
      start: 7229
    functionDepth: 0
    functionLinenumber: 7229
    functionLinenumberEnd: 7236
    functionName: ndpi_proto_cb_tcp_nopayload
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_proto_cb_tcp_nopayload(const struct ndpi_detection_module_struct
      *ndpi_str, uint32_t idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_str
    - idx
    argTypes:
    - struct ndpi_detection_module_struct*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 7245
      start: 7240
    functionDepth: 0
    functionLinenumber: 7240
    functionLinenumberEnd: 7245
    functionName: ndpi_proto_cb_udp
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_proto_cb_udp(const struct ndpi_detection_module_struct *ndpi_str,
      uint32_t idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_str
    - idx
    argTypes:
    - struct ndpi_detection_module_struct*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 7257
      start: 7249
    functionDepth: 0
    functionLinenumber: 7249
    functionLinenumberEnd: 7257
    functionName: ndpi_proto_cb_other
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_proto_cb_other(const struct ndpi_detection_module_struct *ndpi_str,
      uint32_t idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_proto_cb_tcp_payload
      Src: /src/ndpi/src/lib/ndpi_main.c:7270,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7272,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:7274,1
    - Dst: ndpi_proto_cb_tcp_nopayload
      Src: /src/ndpi/src/lib/ndpi_main.c:7281,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7283,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:7285,1
    - Dst: ndpi_proto_cb_udp
      Src: /src/ndpi/src/lib/ndpi_main.c:7294,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7296,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:7298,1
    - Dst: ndpi_proto_cb_other
      Src: /src/ndpi/src/lib/ndpi_main.c:7307,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7309,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:7311,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - ndpi_str
    - count_only
    argTypes:
    - struct ndpi_detection_module_struct*
    - int
    constantsTouched: []
    func_position:
      end: 7316
      start: 7261
    functionDepth: 1
    functionLinenumber: 7261
    functionLinenumberEnd: 7316
    functionName: ndpi_enabled_callbacks_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_proto_cb_other
    - memcpy
    - NDPI_LOG_DBG2
    - ndpi_proto_cb_tcp_payload
    - ndpi_proto_cb_udp
    - ndpi_proto_cb_tcp_nopayload
    linkageType: ''
    returnType: void
    signature: "void ndpi_enabled_callbacks_init(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\tint count_only)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:7354,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - l3len
    - l4ptr
    - l4len
    - nxt_hdr
    argTypes:
    - u_int16_t
    - u_int8_t**
    - u_int16_t*
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 7389
      start: 7332
    functionDepth: 0
    functionLinenumber: 7332
    functionLinenumberEnd: 7389
    functionName: ndpi_handle_ipv6_extension_headers
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: int
    signature: "int ndpi_handle_ipv6_extension_headers(u_int16_t l3len, const u_int8_t
      **l4ptr,\n                                       u_int16_t *l4len, u_int8_t
      *nxt_hdr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:7404,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:7405,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_main.c:7406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - iph
    - ipsize
    argTypes:
    - struct ndpi_iphdr*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 7413
      start: 7394
    functionDepth: 0
    functionLinenumber: 7394
    functionLinenumberEnd: 7413
    functionName: iph_is_valid_and_not_fragmented
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ntohs
    - htons
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t iph_is_valid_and_not_fragmented(const struct ndpi_iphdr *iph,
      const u_int16_t ipsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7442,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7445,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7453,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7456,1
    - Dst: iph_is_valid_and_not_fragmented
      Src: /src/ndpi/src/lib/ndpi_main.c:7461,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:7462,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:7462,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:7474,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:7476,1
    - Dst: ndpi_handle_ipv6_extension_headers
      Src: /src/ndpi/src/lib/ndpi_main.c:7480,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 7
    argNames:
    - ndpi_str
    - l3
    - l3_len
    - l4_return
    - l4_len_return
    - l4_protocol_return
    - flags
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int8_t*
    - u_int16_t
    - u_int8_t**
    - u_int16_t*
    - u_int8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 7501
      start: 7427
    functionDepth: 1
    functionLinenumber: 7427
    functionLinenumberEnd: 7501
    functionName: ndpi_detection_get_l4_internal
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ntohs
    - ndpi_min
    - NDPI_LOG_DBG2
    - iph_is_valid_and_not_fragmented
    - ndpi_handle_ipv6_extension_headers
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_detection_get_l4_internal(struct ndpi_detection_module_struct
      *ndpi_str, const u_int8_t *l3,\n                                               u_int16_t
      l3_len, const u_int8_t **l4_return, u_int16_t *l4_len_return,\n                                               u_int8_t
      *l4_protocol_return, u_int32_t flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7511,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7515,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7518,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7521,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7524,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7527,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7530,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7533,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7536,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7539,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7542,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7545,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7548,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7551,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7554,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7557,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7560,1
    - Dst: flow_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:7562,1
    - Dst: flow_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:7563,1
    - Dst: flow_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:7564,1
    - Dst: flow_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:7565,1
    - Dst: flow_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:7566,1
    - Dst: flow_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:7567,1
    - Dst: flow_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:7568,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7570,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7573,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7576,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7579,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7582,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7585,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7588,1
    - Dst: flow_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:7591,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7593,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7595,1
    - Dst: flow_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:7598,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7600,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7603,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7606,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7609,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7612,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7615,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7618,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7621,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7624,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7627,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7630,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7633,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7636,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7639,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7642,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7645,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7648,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7651,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7654,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7657,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7661,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7663,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7667,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7669,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7673,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:7676,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 117
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 7678
      start: 7505
    functionDepth: 1
    functionLinenumber: 7505
    functionLinenumberEnd: 7678
    functionName: ndpi_free_flow_data
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - flow_is_proto
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_flow_data(struct ndpi_flow_struct* flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_reset_packet_line_info
      Src: /src/ndpi/src/lib/ndpi_main.c:7716,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7724,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:7727,1
    - Dst: ndpi_detection_get_l4_internal
      Src: /src/ndpi/src/lib/ndpi_main.c:7746,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:7770,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:7780,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7799,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7803,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:7823,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:7826,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:7832,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7836,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7846,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:7863,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7903,1
    - Dst: ndpi_is_public_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:7928,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:7928,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:7929,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:7935,1
    - Dst: ndpi_sha256
      Src: /src/ndpi/src/lib/ndpi_main.c:7940,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7942,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7950,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7952,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7959,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:7961,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_main.c:7971,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_main.c:7974,1
    - Dst: ndpi_get_os_from_tcp_fingerprint
      Src: /src/ndpi/src/lib/ndpi_main.c:7976,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 197
    argCount: 6
    argNames:
    - ndpi_str
    - flow
    - current_time_ms
    - packet_data
    - packetlen
    - input_info
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int64_t
    - unsigned char*
    - unsigned short
    - struct ndpi_flow_input_info*
    constantsTouched: []
    func_position:
      end: 8005
      start: 7682
    functionDepth: 2
    functionLinenumber: 7682
    functionLinenumberEnd: 8005
    functionName: ndpi_init_packet
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ntohs
    - printf
    - NDPI_LOG_DBG2
    - ndpi_get_os_from_tcp_fingerprint
    - ndpi_detection_get_l4_internal
    - ndpi_sha256
    - ndpi_strdup
    - ntohl
    - snprintf
    - ndpi_is_public_ipv4
    - ndpi_reset_packet_line_info
    linkageType: ''
    returnType: int
    signature: "int ndpi_init_packet(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \   struct ndpi_flow_struct *flow,\n\t\t\t    const u_int64_t current_time_ms,\n\t\t\t
      \   const unsigned char *packet_data,\n\t\t\t    unsigned short packetlen,\n\t\t\t
      \   struct ndpi_flow_input_info *input_info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8013,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8023,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8028
      start: 8009
    functionDepth: 0
    functionLinenumber: 8009
    functionLinenumberEnd: 8028
    functionName: ndpi_is_multi_or_broadcast
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_multi_or_broadcast(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_seen_flow_beginning
      Src: /src/ndpi/src/lib/ndpi_main.c:8040,1
    - Dst: ndpi_popcount_init
      Src: /src/ndpi/src/lib/ndpi_main.c:8044,1
    - Dst: ndpi_popcount_count
      Src: /src/ndpi/src/lib/ndpi_main.c:8045,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:8052,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/ndpi_main.c:8055,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/ndpi_main.c:8065,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8082
      start: 8032
    functionDepth: 1
    functionLinenumber: 8032
    functionLinenumberEnd: 8082
    functionName: fully_enc_heuristic
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_seen_flow_beginning
    - ndpi_popcount_count
    - ndpi_min
    - ndpi_isprint
    - ndpi_popcount_init
    linkageType: ''
    returnType: int
    signature: "int fully_enc_heuristic(struct ndpi_detection_module_struct *ndpi_str,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8090
      start: 8086
    functionDepth: 0
    functionLinenumber: 8086
    functionLinenumberEnd: 8090
    functionName: current_pkt_from_client_to_server
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int current_pkt_from_client_to_server(const struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t      const struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8098
      start: 8094
    functionDepth: 0
    functionLinenumber: 8094
    functionLinenumberEnd: 8098
    functionName: current_pkt_from_server_to_client
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int current_pkt_from_server_to_client(const struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t      const struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 8117
      start: 8102
    functionDepth: 0
    functionLinenumber: 8102
    functionLinenumberEnd: 8117
    functionName: tcp_ack_padding
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tcp_ack_padding(struct ndpi_packet_struct *packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:8134,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/ndpi_main.c:8142,1
    - Dst: ndpi_isspace
      Src: /src/ndpi/src/lib/ndpi_main.c:8143,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8153,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8153,1
    - Dst: NDPI_COMPARE_IPV6_ADDRESS_STRUCTS
      Src: /src/ndpi/src/lib/ndpi_main.c:8157,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8169,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8171,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8175,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8175,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8179,1
    - Dst: tcp_ack_padding
      Src: /src/ndpi/src/lib/ndpi_main.c:8205,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:8206,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8222,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8229,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8233,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8239,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8242,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8246,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_main.c:8259,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_main.c:8259,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8296,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8296,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8298,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8298,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/ndpi_main.c:8305,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:8310,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:8311,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:8321,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:8322,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/ndpi_main.c:8348,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 153
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8353
      start: 8121
    functionDepth: 1
    functionLinenumber: 8121
    functionLinenumberEnd: 8353
    functionName: connection_tracking
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_COMPARE_IPV6_ADDRESS_STRUCTS
    - memcpy
    - ntohs
    - NDPI_LOG_DBG2
    - tcp_ack_padding
    - ndpi_isprint
    - ndpi_malloc
    - ndpi_isspace
    - ntohl
    - current_pkt_from_client_to_server
    - htons
    linkageType: ''
    returnType: void
    signature: "void connection_tracking(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t\tstruct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dissector_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_main.c:8380,1
    - Dst: func
      Src: /src/ndpi/src/lib/ndpi_main.c:8382,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - ndpi_str
    - flow
    - ndpi_selection_packet
    - detected_protocol
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - NDPI_SELECTION_BITMASK_PROTOCOL_SIZE
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 8388
      start: 8357
    functionDepth: 1
    functionLinenumber: 8357
    functionLinenumberEnd: 8388
    functionName: check_ndpi_subprotocols
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - func
    - dissector_bitmask_is_set
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t check_ndpi_subprotocols(struct ndpi_detection_module_struct
      * const ndpi_str,\n                                         struct ndpi_flow_struct
      * const flow,\n                                         NDPI_SELECTION_BITMASK_PROTOCOL_SIZE
      const ndpi_selection_packet,\n                                         u_int16_t
      detected_protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dissector_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_main.c:8407,1
    - Dst: func
      Src: /src/ndpi/src/lib/ndpi_main.c:8412,1
    - Dst: dissector_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_main.c:8427,1
    - Dst: func
      Src: /src/ndpi/src/lib/ndpi_main.c:8430,1
    - Dst: check_ndpi_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:8441,1
    - Dst: check_ndpi_subprotocols
      Src: /src/ndpi/src/lib/ndpi_main.c:8443,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - ndpi_str
    - flow
    - ndpi_selection_packet
    - callback_buffer
    - callback_buffer_size
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - NDPI_SELECTION_BITMASK_PROTOCOL_SIZE
    - struct call_function_struct*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 8447
      start: 8392
    functionDepth: 2
    functionLinenumber: 8392
    functionLinenumberEnd: 8447
    functionName: check_ndpi_detection_func
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - func
    - dissector_bitmask_is_set
    - check_ndpi_subprotocols
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t check_ndpi_detection_func(struct ndpi_detection_module_struct
      * const ndpi_str,\n\t\t\t\t\t   struct ndpi_flow_struct * const flow,\n\t\t\t\t\t
      \  NDPI_SELECTION_BITMASK_PROTOCOL_SIZE const ndpi_selection_packet,\n\t\t\t\t\t
      \  struct call_function_struct const * const callback_buffer,\n\t\t\t\t\t   uint32_t
      callback_buffer_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_ndpi_detection_func
      Src: /src/ndpi/src/lib/ndpi_main.c:8455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - ndpi_selection_packet
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - NDPI_SELECTION_BITMASK_PROTOCOL_SIZE*
    constantsTouched: []
    func_position:
      end: 8458
      start: 8451
    functionDepth: 3
    functionLinenumber: 8451
    functionLinenumberEnd: 8458
    functionName: check_ndpi_other_flow_func
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - check_ndpi_detection_func
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t check_ndpi_other_flow_func(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t     struct ndpi_flow_struct *flow,\n\t\t\t\t     NDPI_SELECTION_BITMASK_PROTOCOL_SIZE
      *ndpi_selection_packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_ndpi_detection_func
      Src: /src/ndpi/src/lib/ndpi_main.c:8465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - ndpi_selection_packet
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - NDPI_SELECTION_BITMASK_PROTOCOL_SIZE*
    constantsTouched: []
    func_position:
      end: 8468
      start: 8462
    functionDepth: 3
    functionLinenumber: 8462
    functionLinenumberEnd: 8468
    functionName: check_ndpi_udp_flow_func
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - check_ndpi_detection_func
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t check_ndpi_udp_flow_func(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t  struct ndpi_flow_struct *flow,\n\t\t\t\t\t  NDPI_SELECTION_BITMASK_PROTOCOL_SIZE
      *ndpi_selection_packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_ndpi_detection_func
      Src: /src/ndpi/src/lib/ndpi_main.c:8477,1
    - Dst: check_ndpi_detection_func
      Src: /src/ndpi/src/lib/ndpi_main.c:8482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - ndpi_selection_packet
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - NDPI_SELECTION_BITMASK_PROTOCOL_SIZE*
    constantsTouched: []
    func_position:
      end: 8486
      start: 8472
    functionDepth: 3
    functionLinenumber: 8472
    functionLinenumberEnd: 8486
    functionName: check_ndpi_tcp_flow_func
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - check_ndpi_detection_func
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t check_ndpi_tcp_flow_func(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t  struct ndpi_flow_struct *flow,\n\t\t\t\t\t  NDPI_SELECTION_BITMASK_PROTOCOL_SIZE
      *ndpi_selection_packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_ndpi_tcp_flow_func
      Src: /src/ndpi/src/lib/ndpi_main.c:8494,1
    - Dst: check_ndpi_udp_flow_func
      Src: /src/ndpi/src/lib/ndpi_main.c:8496,1
    - Dst: check_ndpi_other_flow_func
      Src: /src/ndpi/src/lib/ndpi_main.c:8498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - ndpi_selection_packet
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - NDPI_SELECTION_BITMASK_PROTOCOL_SIZE*
    constantsTouched: []
    func_position:
      end: 8499
      start: 8490
    functionDepth: 4
    functionLinenumber: 8490
    functionLinenumberEnd: 8499
    functionName: ndpi_check_flow_func
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - check_ndpi_udp_flow_func
    - check_ndpi_other_flow_func
    - check_ndpi_tcp_flow_func
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t ndpi_check_flow_func(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t      struct ndpi_flow_struct *flow,\n\t\t\t\t      NDPI_SELECTION_BITMASK_PROTOCOL_SIZE
      *ndpi_selection_packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_network_port_ptree_match
      Src: /src/ndpi/src/lib/ndpi_main.c:8514,1
    - Dst: ndpi_network_port_ptree_match
      Src: /src/ndpi/src/lib/ndpi_main.c:8518,1
    - Dst: ndpi_network_port_ptree6_match
      Src: /src/ndpi/src/lib/ndpi_main.c:8524,1
    - Dst: ndpi_network_port_ptree6_match
      Src: /src/ndpi/src/lib/ndpi_main.c:8528,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8533
      start: 8503
    functionDepth: 2
    functionLinenumber: 8503
    functionLinenumberEnd: 8533
    functionName: ndpi_guess_host_protocol_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_network_port_ptree_match
    - ndpi_network_port_ptree6_match
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_guess_host_protocol_id(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/ndpi_main.c:8542,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8544,1
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/ndpi_main.c:8547,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:8549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - flow
    - use_client
    argTypes:
    - struct ndpi_flow_struct*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 8553
      start: 8537
    functionDepth: 1
    functionLinenumber: 8537
    functionLinenumberEnd: 8553
    functionName: make_msteams_key
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_quick_hash64
    - ntohl
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t make_msteams_key(struct ndpi_flow_struct *flow, u_int8_t
      use_client)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8563,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8564,1
    - Dst: ndpi_int_change_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:8569,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:8576,1
    - Dst: make_msteams_key
      Src: /src/ndpi/src/lib/ndpi_main.c:8577,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/ndpi_main.c:8579,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - master
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 8583
      start: 8557
    functionDepth: 2
    functionLinenumber: 8557
    functionLinenumberEnd: 8583
    functionName: ndpi_reconcile_msteams_udp
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - make_msteams_key
    - ndpi_int_change_protocol
    - ndpi_lru_add_to_cache
    - ntohs
    - ndpi_get_current_time
    linkageType: ''
    returnType: void
    signature: "void ndpi_reconcile_msteams_udp(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t       struct ndpi_flow_struct *flow,\n\t\t\t\t       u_int16_t
      master)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 3
    argNames:
    - flow
    - sport
    - dport
    argTypes:
    - struct ndpi_flow_struct*
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 8610
      start: 8587
    functionDepth: 0
    functionLinenumber: 8587
    functionLinenumberEnd: 8610
    functionName: ndpi_reconcile_msteams_call_udp_port
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ndpi_reconcile_msteams_call_udp_port(struct ndpi_flow_struct *flow,\n\t\t\t\t\t\tu_int16_t
      sport, u_int16_t dport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8617,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8618,1
    - Dst: ndpi_reconcile_msteams_call_udp_port
      Src: /src/ndpi/src/lib/ndpi_main.c:8620,1
    - Dst: ndpi_reconcile_msteams_call_udp_port
      Src: /src/ndpi/src/lib/ndpi_main.c:8621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8624
      start: 8614
    functionDepth: 1
    functionLinenumber: 8614
    functionLinenumberEnd: 8624
    functionName: ndpi_reconcile_msteams_call_udp
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_reconcile_msteams_call_udp_port
    - ntohs
    linkageType: ''
    returnType: void
    signature: void ndpi_reconcile_msteams_call_udp(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_handle_risk_exceptions
      Src: /src/ndpi/src/lib/ndpi_main.c:8639,1
    - Dst: ndpi_reconcile_msteams_udp
      Src: /src/ndpi/src/lib/ndpi_main.c:8645,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:8657,1
    - Dst: make_msteams_key
      Src: /src/ndpi/src/lib/ndpi_main.c:8658,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/ndpi_main.c:8660,1
    - Dst: ndpi_reconcile_msteams_udp
      Src: /src/ndpi/src/lib/ndpi_main.c:8666,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:8680,1
    - Dst: make_msteams_key
      Src: /src/ndpi/src/lib/ndpi_main.c:8681,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/ndpi_main.c:8683,1
    - Dst: ndpi_int_change_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:8684,1
    - Dst: ndpi_int_change_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:8689,1
    - Dst: ndpi_reconcile_msteams_call_udp
      Src: /src/ndpi/src/lib/ndpi_main.c:8696,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8700,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8705,1
    - Dst: ndpi_int_change_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:8715,1
    - Dst: ndpi_int_change_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:8726,1
    - Dst: ndpi_get_proto_breed
      Src: /src/ndpi/src/lib/ndpi_main.c:8742,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8763,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 78
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - ret
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_protocol*
    constantsTouched: []
    func_position:
      end: 8771
      start: 8628
    functionDepth: 3
    functionLinenumber: 8628
    functionLinenumberEnd: 8771
    functionName: ndpi_reconcile_protocols
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_proto_breed
    - make_msteams_key
    - ndpi_set_risk
    - ndpi_lru_add_to_cache
    - ndpi_lru_find_cache
    - ndpi_int_change_protocol
    - ndpi_handle_risk_exceptions
    - ndpi_get_current_time
    - ndpi_reconcile_msteams_udp
    - ndpi_reconcile_msteams_call_udp
    linkageType: ''
    returnType: void
    signature: "void ndpi_reconcile_protocols(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t     struct ndpi_flow_struct *flow,\n\t\t\t\t     ndpi_protocol
      *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:8781,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8782,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8782,1
    - Dst: make_bittorrent_peers_key
      Src: /src/ndpi/src/lib/ndpi_main.c:8797,1
    - Dst: make_bittorrent_host_key
      Src: /src/ndpi/src/lib/ndpi_main.c:8798,1
    - Dst: make_bittorrent_host_key
      Src: /src/ndpi/src/lib/ndpi_main.c:8798,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:8801,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/ndpi_main.c:8801,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:8802,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/ndpi_main.c:8802,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:8803,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/ndpi_main.c:8803,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:8806,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8808,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:8808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8816
      start: 8777
    functionDepth: 2
    functionLinenumber: 8777
    functionLinenumberEnd: 8816
    functionName: search_into_bittorrent_cache
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_lru_find_cache
    - printf
    - ntohs
    - make_bittorrent_peers_key
    - make_bittorrent_host_key
    - ndpi_get_current_time
    linkageType: ''
    returnType: int
    signature: "int search_into_bittorrent_cache(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8835,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8839,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8841,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8844,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8845
      start: 8828
    functionDepth: 1
    functionLinenumber: 8828
    functionLinenumberEnd: 8845
    functionName: ndpi_check_tcp_flags
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    linkageType: ''
    returnType: void
    signature: void ndpi_check_tcp_flags(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8866,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8875,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8880,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8886
      start: 8849
    functionDepth: 1
    functionLinenumber: 8849
    functionLinenumberEnd: 8886
    functionName: ndpi_check_probing_attempt
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_probing_attempt(struct ndpi_detection_module_struct
      *ndpi_str,\n                                       struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 8906
      start: 8890
    functionDepth: 0
    functionLinenumber: 8890
    functionLinenumberEnd: 8906
    functionName: is_unidir_traffic_exception
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_unidir_traffic_exception(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:8915,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:8920,1
    - Dst: ndpi_is_multi_or_broadcast
      Src: /src/ndpi/src/lib/ndpi_main.c:8935,1
    - Dst: is_unidir_traffic_exception
      Src: /src/ndpi/src/lib/ndpi_main.c:8936,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8939,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:8941,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - ret
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_protocol*
    constantsTouched: []
    func_position:
      end: 8946
      start: 8910
    functionDepth: 1
    functionLinenumber: 8910
    functionLinenumberEnd: 8946
    functionName: internal_giveup
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_LOG_DBG2
    - ndpi_is_multi_or_broadcast
    - NDPI_LOG_INFO
    - is_unidir_traffic_exception
    linkageType: ''
    returnType: void
    signature: "void internal_giveup(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow,\n                            ndpi_protocol
      *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_check_tcp_flags
      Src: /src/ndpi/src/lib/ndpi_main.c:8963,1
    - Dst: ndpi_check_probing_attempt
      Src: /src/ndpi/src/lib/ndpi_main.c:8964,1
    - Dst: internal_giveup
      Src: /src/ndpi/src/lib/ndpi_main.c:8976,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:8982,1
    - Dst: search_into_bittorrent_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:8990,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:8991,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:8997,1
    - Dst: mining_make_lru_cache_key
      Src: /src/ndpi/src/lib/ndpi_main.c:8997,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/ndpi_main.c:8999,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:9000,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9006,1
    - Dst: ookla_search_into_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:9006,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:9007,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:9014,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:9024,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:9035,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:9044,1
    - Dst: ndpi_fill_protocol_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9053,1
    - Dst: internal_giveup
      Src: /src/ndpi/src/lib/ndpi_main.c:9057,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 54
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - protocol_was_guessed
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 9060
      start: 8950
    functionDepth: 3
    functionLinenumber: 8950
    functionLinenumberEnd: 9060
    functionName: ndpi_detection_giveup
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_lru_find_cache
    - ntohs
    - internal_giveup
    - ndpi_check_probing_attempt
    - search_into_bittorrent_cache
    - ndpi_fill_protocol_category
    - ookla_search_into_cache
    - ndpi_check_tcp_flags
    - mining_make_lru_cache_key
    - ndpi_get_current_time
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: ndpi_protocol
    signature: "ndpi_protocol ndpi_detection_giveup(struct ndpi_detection_module_struct
      *ndpi_str, struct ndpi_flow_struct *flow,\n\t\t\t\t    u_int8_t *protocol_was_guessed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: struct ndpi_flow_struct*::extra_packets_func
      Src: /src/ndpi/src/lib/ndpi_main.c:9070,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 9075
      start: 9064
    functionDepth: 0
    functionLinenumber: 9064
    functionLinenumberEnd: 9075
    functionName: process_extra_packet
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - struct ndpi_flow_struct*::extra_packets_func
    linkageType: ''
    returnType: void
    signature: "void process_extra_packet(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \        struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_main.c:9094,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:9097,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:9101,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:9101,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_main.c:9102,1
    - Dst: strrchr
      Src: /src/ndpi/src/lib/ndpi_main.c:9104,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:9111,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:9112,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:9116,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:9120,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:9121,1
    - Dst: add_to_ptree
      Src: /src/ndpi/src/lib/ndpi_main.c:9124,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - ndpi_str
    - ip_address_and_mask
    - category
    - user_data
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - ndpi_protocol_category_t
    - void*
    constantsTouched: []
    func_position:
      end: 9136
      start: 9079
    functionDepth: 2
    functionLinenumber: 9079
    functionLinenumberEnd: 9136
    functionName: ndpi_load_ip_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - atoi
    - add_to_ptree
    - NDPI_LOG_DBG2
    - strncpy
    - strrchr
    - inet_pton
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_ip_category(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \ const char *ip_address_and_mask,\n\t\t\t  ndpi_protocol_category_t category,\n\t\t\t
      \ void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_domain_classify_add
      Src: /src/ndpi/src/lib/ndpi_main.c:9146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ndpi_str
    - name_to_add
    - category
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - ndpi_protocol_category_t
    constantsTouched: []
    func_position:
      end: 9148
      start: 9140
    functionDepth: 2
    functionLinenumber: 9140
    functionLinenumberEnd: 9148
    functionName: ndpi_load_hostname_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_domain_classify_add
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_hostname_category(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\tconst char *name_to_add,\n\t\t\t\tndpi_protocol_category_t
      category)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_load_ip_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9158,1
    - Dst: ndpi_load_hostname_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ndpi_struct
    - ip_or_name
    - category
    - user_data
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - ndpi_protocol_category_t
    - void*
    constantsTouched: []
    func_position:
      end: 9172
      start: 9153
    functionDepth: 3
    functionLinenumber: 9153
    functionLinenumberEnd: 9172
    functionName: ndpi_load_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_load_ip_category
    - ndpi_load_hostname_category
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_category(struct ndpi_detection_module_struct *ndpi_struct,
      const char *ip_or_name,\n\t\t       ndpi_protocol_category_t category, void
      *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_load_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9185,1
    - Dst: ndpi_domain_classify_free
      Src: /src/ndpi/src/lib/ndpi_main.c:9188,1
    - Dst: ndpi_domain_classify_alloc
      Src: /src/ndpi/src/lib/ndpi_main.c:9190,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:9193,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:9196,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/src/lib/ndpi_main.c:9199,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/src/lib/ndpi_main.c:9202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 9207
      start: 9176
    functionDepth: 4
    functionLinenumber: 9176
    functionLinenumberEnd: 9207
    functionName: ndpi_enable_loaded_categories
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 3
    functionsReached:
    - ndpi_patricia_new
    - ndpi_domain_classify_free
    - ndpi_domain_classify_alloc
    - ndpi_load_category
    - ndpi_patricia_destroy
    linkageType: ''
    returnType: int
    signature: int ndpi_enable_loaded_categories(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:9221,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:9223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_str
    - saddr
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 9227
      start: 9212
    functionDepth: 1
    functionLinenumber: 9212
    functionLinenumberEnd: 9227
    functionName: ndpi_find_ipv4_category_userdata
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_patricia_search_best
    - ndpi_fill_prefix_v4
    linkageType: ''
    returnType: void
    signature: "void * ndpi_find_ipv4_category_userdata(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t       u_int32_t saddr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:9240,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:9242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_str
    - saddr
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct in6_addr*
    constantsTouched: []
    func_position:
      end: 9246
      start: 9231
    functionDepth: 1
    functionLinenumber: 9231
    functionLinenumberEnd: 9246
    functionName: ndpi_find_ipv6_category_userdata
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_fill_prefix_v6
    - ndpi_patricia_search_best
    linkageType: ''
    returnType: void
    signature: "void * ndpi_find_ipv6_category_userdata(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t       struct in6_addr *saddr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:9270,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:9272,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:9277,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:9279,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:9291,1
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9298,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - ndpi_str
    - flow
    - saddr
    - daddr
    - ret
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int32_t
    - u_int32_t
    - ndpi_protocol*
    constantsTouched: []
    func_position:
      end: 9301
      start: 9252
    functionDepth: 1
    functionLinenumber: 9252
    functionLinenumberEnd: 9301
    functionName: ndpi_fill_ip_protocol_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_get_proto_category
    - ndpi_patricia_search_best
    - ndpi_fill_prefix_v4
    linkageType: ''
    returnType: int
    signature: "int ndpi_fill_ip_protocol_category(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t   struct ndpi_flow_struct *flow,\n\t\t\t\t   u_int32_t
      saddr, u_int32_t daddr,\n\t\t\t\t   ndpi_protocol *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:9319,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:9321,1
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:9324,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:9326,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:9337,1
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - ndpi_str
    - flow
    - saddr
    - daddr
    - ret
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct in6_addr*
    - struct in6_addr*
    - ndpi_protocol*
    constantsTouched: []
    func_position:
      end: 9347
      start: 9305
    functionDepth: 1
    functionLinenumber: 9305
    functionLinenumberEnd: 9347
    functionName: ndpi_fill_ipv6_protocol_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_fill_prefix_v6
    - ndpi_set_risk
    - ndpi_patricia_search_best
    - ndpi_get_proto_category
    linkageType: ''
    returnType: int
    signature: "int ndpi_fill_ipv6_protocol_category(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t     struct ndpi_flow_struct *flow,\n\t\t\t\t     struct
      in6_addr *saddr, struct in6_addr *daddr,\n\t\t\t\t     ndpi_protocol *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9374,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - ret
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_protocol*
    constantsTouched: []
    func_position:
      end: 9375
      start: 9351
    functionDepth: 1
    functionLinenumber: 9351
    functionLinenumberEnd: 9375
    functionName: ndpi_fill_protocol_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_get_proto_category
    linkageType: ''
    returnType: void
    signature: "void ndpi_fill_protocol_category(struct ndpi_detection_module_struct
      *ndpi_str, struct ndpi_flow_struct *flow,\n\t\t\t\t ndpi_protocol *ret)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 9411
      start: 9379
    functionDepth: 0
    functionLinenumber: 9379
    functionLinenumberEnd: 9411
    functionName: ndpi_reset_packet_line_info
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_reset_packet_line_info(struct ndpi_packet_struct *packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ret
    argTypes:
    - ndpi_protocol*
    constantsTouched: []
    func_position:
      end: 9420
      start: 9415
    functionDepth: 0
    functionLinenumber: 9415
    functionLinenumberEnd: 9420
    functionName: ndpi_is_ntop_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_is_ntop_protocol(ndpi_protocol *ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:9428,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:9438,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:9439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 9440
      start: 9424
    functionDepth: 1
    functionLinenumber: 9424
    functionLinenumberEnd: 9440
    functionName: ndpi_search_shellscript
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_LOG_DBG
    - ndpi_set_risk
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_shellscript(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:9452,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:9457,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/ndpi_main.c:9457,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/ndpi_main.c:9460,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/ndpi_main.c:9460,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:9463,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:9464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 9465
      start: 9445
    functionDepth: 1
    functionLinenumber: 9445
    functionLinenumberEnd: 9465
    functionName: ndpi_search_elf
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - le32toh
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_elf(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:9476,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9481,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/ndpi_main.c:9481,1
    - Dst: be32toh
      Src: /src/ndpi/src/lib/ndpi_main.c:9486,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/ndpi_main.c:9486,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/ndpi_main.c:9489,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:9490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 9491
      start: 9470
    functionDepth: 1
    functionLinenumber: 9470
    functionLinenumberEnd: 9491
    functionName: ndpi_search_portable_executable
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ntohs
    - be32toh
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_portable_executable(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                            struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_ntop_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:9503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - expected_proto
    - returned_proto
    argTypes:
    - default_ports_tree_node_t*
    - ndpi_protocol*
    constantsTouched: []
    func_position:
      end: 9516
      start: 9495
    functionDepth: 1
    functionLinenumber: 9495
    functionLinenumberEnd: 9516
    functionName: ndpi_check_protocol_port_mismatch_exceptions
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_is_ntop_protocol
    linkageType: ''
    returnType: int
    signature: "int ndpi_check_protocol_port_mismatch_exceptions(default_ports_tree_node_t
      *expected_proto,\n\t\t\t\t\t\t\tndpi_protocol *returned_proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: guess_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:9525,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9526,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9526,1
    - Dst: ndpi_guess_host_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:9528,1
    - Dst: ndpi_fill_ip_protocol_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9535,1
    - Dst: ndpi_fill_ipv6_protocol_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9537,1
    - Dst: ndpi_is_custom_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:9544,1
    - Dst: ndpi_fill_protocol_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9549,1
    - Dst: ndpi_fill_protocol_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9557,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:9561,1
    - Dst: ndpi_fill_protocol_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - ret
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_protocol*
    constantsTouched: []
    func_position:
      end: 9571
      start: 9520
    functionDepth: 3
    functionLinenumber: 9520
    functionLinenumberEnd: 9571
    functionName: do_guess
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ntohs
    - ndpi_fill_ipv6_protocol_category
    - ndpi_get_num_internal_protocols
    - ndpi_fill_ip_protocol_category
    - ndpi_fill_protocol_category
    - ndpi_guess_host_protocol_id
    - ndpi_is_custom_protocol
    - guess_protocol_id
    linkageType: ''
    returnType: int
    signature: int do_guess(struct ndpi_detection_module_struct *ndpi_str, struct
      ndpi_flow_struct *flow, ndpi_protocol *ret)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:9580,1
    - Dst: ndpi_fpc_confidence_get_name
      Src: /src/ndpi/src/lib/ndpi_main.c:9582,1
    - Dst: ndpi_fpc_confidence_get_name
      Src: /src/ndpi/src/lib/ndpi_main.c:9584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ndpi_str
    - flow
    - fpc_master
    - fpc_app
    - fpc_confidence
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    - u_int16_t
    - ndpi_fpc_confidence_t
    constantsTouched: []
    func_position:
      end: 9588
      start: 9575
    functionDepth: 1
    functionLinenumber: 9575
    functionLinenumberEnd: 9588
    functionName: fpc_update
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG
    - ndpi_fpc_confidence_get_name
    linkageType: ''
    returnType: void
    signature: "void fpc_update(struct ndpi_detection_module_struct *ndpi_str,\n                       struct
      ndpi_flow_struct *flow,\n\t\t       u_int16_t fpc_master, u_int16_t fpc_app,\n\t\t
      \      ndpi_fpc_confidence_t fpc_confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fpc_update
      Src: /src/ndpi/src/lib/ndpi_main.c:9604,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:9611,1
    - Dst: fpc_dns_cache_key_from_flow
      Src: /src/ndpi/src/lib/ndpi_main.c:9611,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/ndpi_main.c:9613,1
    - Dst: fpc_update
      Src: /src/ndpi/src/lib/ndpi_main.c:9614,1
    - Dst: fpc_update
      Src: /src/ndpi/src/lib/ndpi_main.c:9621,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 9625
      start: 9592
    functionDepth: 2
    functionLinenumber: 9592
    functionLinenumberEnd: 9625
    functionName: fpc_check_eval
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - fpc_update
    - fpc_dns_cache_key_from_flow
    - ndpi_lru_find_cache
    - ndpi_get_current_time
    linkageType: ''
    returnType: void
    signature: "void fpc_check_eval(struct ndpi_detection_module_struct *ndpi_str,\n
      \                          struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:9637,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:9641,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:9645,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - default_ports
    - str
    - str_len
    argTypes:
    - ndpi_port_range*
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 9660
      start: 9629
    functionDepth: 0
    functionLinenumber: 9629
    functionLinenumberEnd: 9660
    functionName: ndpi_expected_ports_str
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * ndpi_expected_ports_str(ndpi_port_range *default_ports, char
      *str, u_int str_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:9675,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:9683,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:9693,1
    - Dst: ndpi_init_packet
      Src: /src/ndpi/src/lib/ndpi_main.c:9700,1
    - Dst: connection_tracking
      Src: /src/ndpi/src/lib/ndpi_main.c:9703,1
    - Dst: internal_giveup
      Src: /src/ndpi/src/lib/ndpi_main.c:9714,1
    - Dst: process_extra_packet
      Src: /src/ndpi/src/lib/ndpi_main.c:9722,1
    - Dst: internal_giveup
      Src: /src/ndpi/src/lib/ndpi_main.c:9730,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:9746,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:9751,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:9752,1
    - Dst: nbpf_match
      Src: /src/ndpi/src/lib/ndpi_main.c:9768,1
    - Dst: ndpi_fill_protocol_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9771,1
    - Dst: ndpi_reconcile_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:9772,1
    - Dst: do_guess
      Src: /src/ndpi/src/lib/ndpi_main.c:9807,1
    - Dst: internal_giveup
      Src: /src/ndpi/src/lib/ndpi_main.c:9810,1
    - Dst: ndpi_check_flow_func
      Src: /src/ndpi/src/lib/ndpi_main.c:9816,1
    - Dst: ndpi_fill_protocol_category
      Src: /src/ndpi/src/lib/ndpi_main.c:9829,1
    - Dst: ndpi_get_guessed_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:9840,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9841,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9842,1
    - Dst: ndpi_get_guessed_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:9845,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9846,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9847,1
    - Dst: ndpi_check_protocol_port_mismatch_exceptions
      Src: /src/ndpi/src/lib/ndpi_main.c:9859,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9868,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9869,1
    - Dst: ndpi_get_guessed_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:9876,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9877,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9877,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:9884,1
    - Dst: ndpi_expected_ports_str
      Src: /src/ndpi/src/lib/ndpi_main.c:9885,1
    - Dst: ndpi_is_ntop_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:9890,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9895,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9896,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9897,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9898,1
    - Dst: ndpi_get_guessed_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:9915,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9916,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:9916,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:9934,1
    - Dst: ndpi_expected_ports_str
      Src: /src/ndpi/src/lib/ndpi_main.c:9935,1
    - Dst: ndpi_is_public_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:9953,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:9953,1
    - Dst: ndpi_is_public_ipv4
      Src: /src/ndpi/src/lib/ndpi_main.c:9954,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_main.c:9954,1
    - Dst: ndpi_network_risk_ptree_match
      Src: /src/ndpi/src/lib/ndpi_main.c:9958,1
    - Dst: ndpi_network_risk_ptree_match6
      Src: /src/ndpi/src/lib/ndpi_main.c:9964,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:9968,1
    - Dst: fully_enc_heuristic
      Src: /src/ndpi/src/lib/ndpi_main.c:9985,1
    - Dst: ndpi_search_portable_executable
      Src: /src/ndpi/src/lib/ndpi_main.c:9991,1
    - Dst: ndpi_search_elf
      Src: /src/ndpi/src/lib/ndpi_main.c:9992,1
    - Dst: ndpi_search_shellscript
      Src: /src/ndpi/src/lib/ndpi_main.c:9993,1
    - Dst: ndpi_entropy
      Src: /src/ndpi/src/lib/ndpi_main.c:10005,1
    - Dst: ndpi_entropy2risk
      Src: /src/ndpi/src/lib/ndpi_main.c:10008,1
    - Dst: fpc_check_eval
      Src: /src/ndpi/src/lib/ndpi_main.c:10013,1
    - Dst: internal_giveup
      Src: /src/ndpi/src/lib/ndpi_main.c:10018,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 195
    argCount: 6
    argNames:
    - ndpi_str
    - flow
    - packet_data
    - packetlen
    - current_time_ms
    - input_info
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - unsigned char*
    - unsigned short
    - u_int64_t
    - struct ndpi_flow_input_info*
    constantsTouched: []
    func_position:
      end: 10022
      start: 9664
    functionDepth: 5
    functionLinenumber: 9664
    functionLinenumberEnd: 10022
    functionName: ndpi_internal_detection_process_packet
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memset
    - connection_tracking
    - fpc_check_eval
    - internal_giveup
    - ndpi_reconcile_protocols
    - ndpi_init_packet
    - ndpi_network_risk_ptree_match6
    - ndpi_fill_protocol_category
    - ndpi_get_guessed_protocol_id
    - do_guess
    - ndpi_expected_ports_str
    - ndpi_is_public_ipv4
    - ndpi_check_protocol_port_mismatch_exceptions
    - ndpi_network_risk_ptree_match
    - ndpi_set_risk
    - ntohs
    - NDPI_LOG_DBG
    - ndpi_search_shellscript
    - ndpi_search_elf
    - fully_enc_heuristic
    - ndpi_search_portable_executable
    - ndpi_is_ntop_protocol
    - process_extra_packet
    - ndpi_entropy
    - nbpf_match
    - ntohl
    - ndpi_check_flow_func
    - memcpy
    - ndpi_entropy2risk
    linkageType: ''
    returnType: ndpi_protocol
    signature: "ndpi_protocol ndpi_internal_detection_process_packet(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t\t\t    struct ndpi_flow_struct *flow,\n\t\t\t\t\t\t\t
      \   const unsigned char *packet_data,\n\t\t\t\t\t\t\t    const unsigned short
      packetlen,\n\t\t\t\t\t\t\t    const u_int64_t current_time_ms,\n\t\t\t\t\t\t\t
      \   struct ndpi_flow_input_info *input_info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_internal_detection_process_packet
      Src: /src/ndpi/src/lib/ndpi_main.c:10030,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10034,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10035,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ndpi_str
    - flow
    - packet_data
    - packetlen
    - current_time_ms
    - input_info
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - unsigned char*
    - unsigned short
    - u_int64_t
    - struct ndpi_flow_input_info*
    constantsTouched: []
    func_position:
      end: 10039
      start: 10026
    functionDepth: 6
    functionLinenumber: 10026
    functionLinenumberEnd: 10039
    functionName: ndpi_detection_process_packet
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_internal_detection_process_packet
    - ndpi_map_ndpi_id_to_user_proto_id
    linkageType: ''
    returnType: ndpi_protocol
    signature: "ndpi_protocol ndpi_detection_process_packet(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t    struct ndpi_flow_struct *flow, const unsigned char
      *packet_data,\n\t\t\t\t\t    const unsigned short packetlen, const u_int64_t
      current_time_ms,\n\t\t\t\t\t    struct ndpi_flow_input_info *input_info)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - str
    - max_chars_to_read
    - bytes_read
    argTypes:
    - u_int8_t*
    - u_int16_t
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 10057
      start: 10043
    functionDepth: 0
    functionLinenumber: 10043
    functionLinenumberEnd: 10057
    functionName: ndpi_bytestream_to_number
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_bytestream_to_number(const u_int8_t *str, u_int16_t
      max_chars_to_read, u_int16_t *bytes_read)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - str
    - max_chars_to_read
    - bytes_read
    argTypes:
    - u_int8_t*
    - u_int16_t
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 10073
      start: 10061
    functionDepth: 0
    functionLinenumber: 10061
    functionLinenumberEnd: 10073
    functionName: ndpi_bytestream_to_number64
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_bytestream_to_number64(const u_int8_t *str, u_int16_t
      max_chars_to_read, u_int16_t *bytes_read)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bytestream_to_number64
      Src: /src/ndpi/src/lib/ndpi_main.c:10082,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - str
    - max_chars_to_read
    - bytes_read
    argTypes:
    - u_int8_t*
    - u_int16_t
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 10107
      start: 10077
    functionDepth: 1
    functionLinenumber: 10077
    functionLinenumberEnd: 10107
    functionName: ndpi_bytestream_dec_or_hex_to_number64
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_bytestream_to_number64
    linkageType: ''
    returnType: u_int64_t
    signature: "u_int64_t ndpi_bytestream_dec_or_hex_to_number64(const u_int8_t *str,
      u_int16_t max_chars_to_read,\n\t\t\t\t\t\t u_int16_t *bytes_read)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bytestream_to_number
      Src: /src/ndpi/src/lib/ndpi_main.c:10119,1
    - Dst: ndpi_bytestream_to_number
      Src: /src/ndpi/src/lib/ndpi_main.c:10126,1
    - Dst: ndpi_bytestream_to_number
      Src: /src/ndpi/src/lib/ndpi_main.c:10133,1
    - Dst: ndpi_bytestream_to_number
      Src: /src/ndpi/src/lib/ndpi_main.c:10140,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/ndpi_main.c:10148,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 3
    argNames:
    - str
    - max_chars_to_read
    - bytes_read
    argTypes:
    - u_int8_t*
    - u_int16_t
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 10149
      start: 10111
    functionDepth: 1
    functionLinenumber: 10111
    functionLinenumberEnd: 10149
    functionName: ndpi_bytestream_to_ipv4
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - htonl
    - ndpi_bytestream_to_number
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_bytestream_to_ipv4(const u_int8_t *str, u_int16_t max_chars_to_read,
      u_int16_t *bytes_read)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/ndpi_main.c:10211,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/ndpi_main.c:10212,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/ndpi_main.c:10212,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/ndpi_main.c:10213,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/ndpi_main.c:10214,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/ndpi_main.c:10215,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/ndpi_main.c:10216,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/ndpi_main.c:10224,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:10282,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/ndpi_main.c:10284,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 90
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 10319
      start: 10158
    functionDepth: 0
    functionLinenumber: 10158
    functionLinenumberEnd: 10319
    functionName: parse_single_packet_line
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_STATICSTRING_LEN
    - memchr
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void parse_single_packet_line(struct ndpi_detection_module_struct *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_reset_packet_line_info
      Src: /src/ndpi/src/lib/ndpi_main.c:10335,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:10356,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:10357,1
    - Dst: parse_single_packet_line
      Src: /src/ndpi/src/lib/ndpi_main.c:10365,1
    - Dst: parse_single_packet_line
      Src: /src/ndpi/src/lib/ndpi_main.c:10388,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 10391
      start: 10324
    functionDepth: 1
    functionLinenumber: 10324
    functionLinenumberEnd: 10391
    functionName: ndpi_parse_packet_line_info
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - parse_single_packet_line
    - memcpy
    - ndpi_reset_packet_line_info
    - ndpi_min
    linkageType: ''
    returnType: void
    signature: void ndpi_parse_packet_line_info(struct ndpi_detection_module_struct
      *ndpi_str, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 10432
      start: 10395
    functionDepth: 0
    functionLinenumber: 10395
    functionLinenumberEnd: 10432
    functionName: ndpi_parse_packet_line_info_any
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_parse_packet_line_info_any(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_detection_get_l4_internal
      Src: /src/ndpi/src/lib/ndpi_main.c:10438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - l3
    - l3_len
    - l4_return
    - l4_len_return
    - l4_protocol_return
    - flags
    argTypes:
    - u_int8_t*
    - u_int16_t
    - u_int8_t**
    - u_int16_t*
    - u_int8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 10439
      start: 10436
    functionDepth: 2
    functionLinenumber: 10436
    functionLinenumberEnd: 10439
    functionName: ndpi_detection_get_l4
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_detection_get_l4_internal
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_detection_get_l4(const u_int8_t *l3, u_int16_t l3_len,
      const u_int8_t **l4_return,\n\t\t\t       u_int16_t *l4_len_return, u_int8_t
      *l4_protocol_return, u_int32_t flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:10452,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:10454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ndpi_str
    - flow
    - detected_protocol
    - confidence
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 10455
      start: 10443
    functionDepth: 1
    functionLinenumber: 10443
    functionLinenumberEnd: 10455
    functionName: ndpi_set_detected_protocol_keeping_master
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_set_detected_protocol_keeping_master(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t       struct ndpi_flow_struct *flow,\n\t\t\t\t\t       u_int16_t
      detected_protocol,\n\t\t\t\t\t       ndpi_confidence_t confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:10465,1
    - Dst: ndpi_int_change_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:10471,1
    - Dst: ndpi_reconcile_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:10473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ndpi_str
    - flow
    - upper_detected_protocol
    - lower_detected_protocol
    - confidence
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    - u_int16_t
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 10474
      start: 10459
    functionDepth: 4
    functionLinenumber: 10459
    functionLinenumberEnd: 10474
    functionName: ndpi_set_detected_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 2
    functionsReached:
    - ndpi_reconcile_protocols
    - NDPI_LOG_ERR
    - ndpi_int_change_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_set_detected_protocol(struct ndpi_detection_module_struct
      *ndpi_str, struct ndpi_flow_struct *flow,\n\t\t\t\tu_int16_t upper_detected_protocol,
      u_int16_t lower_detected_protocol,\n\t\t\t\tndpi_confidence_t confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 10482
      start: 10478
    functionDepth: 0
    functionLinenumber: 10478
    functionLinenumberEnd: 10482
    functionName: reset_detected_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_detected_protocol(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 10488
      start: 10486
    functionDepth: 0
    functionLinenumber: 10486
    functionLinenumberEnd: 10488
    functionName: ndpi_get_flow_masterprotocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_get_flow_masterprotocol(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 10494
      start: 10492
    functionDepth: 0
    functionLinenumber: 10492
    functionLinenumberEnd: 10494
    functionName: ndpi_get_flow_appprotocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_get_flow_appprotocol(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 10501
      start: 10498
    functionDepth: 0
    functionLinenumber: 10498
    functionLinenumberEnd: 10501
    functionName: ndpi_get_flow_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ndpi_protocol_category_t
    signature: ndpi_protocol_category_t ndpi_get_flow_category(struct ndpi_flow_struct
      *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_flow_masterprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:10508,1
    - Dst: ndpi_get_flow_appprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:10509,1
    - Dst: ndpi_get_flow_category
      Src: /src/ndpi/src/lib/ndpi_main.c:10510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - flow
    - ndpi_proto
    argTypes:
    - struct ndpi_flow_struct*
    - struct ndpi_proto*
    constantsTouched: []
    func_position:
      end: 10511
      start: 10505
    functionDepth: 1
    functionLinenumber: 10505
    functionLinenumberEnd: 10511
    functionName: ndpi_get_flow_ndpi_proto
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_flow_appprotocol
    - ndpi_get_flow_masterprotocol
    - ndpi_get_flow_category
    linkageType: ''
    returnType: void
    signature: "void ndpi_get_flow_ndpi_proto(struct ndpi_flow_struct *flow,\n\t\t\t
      \     struct ndpi_proto * ndpi_proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - flow
    - upper_detected_protocol
    - lower_detected_protocol
    - confidence
    argTypes:
    - struct ndpi_flow_struct*
    - u_int16_t
    - u_int16_t
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 10521
      start: 10515
    functionDepth: 0
    functionLinenumber: 10515
    functionLinenumberEnd: 10521
    functionName: ndpi_int_change_flow_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_change_flow_protocol(struct ndpi_flow_struct *flow,\n\t\t\t\t\t
      \ u_int16_t upper_detected_protocol, u_int16_t lower_detected_protocol,\n\t\t\t\t\t
      \ ndpi_confidence_t confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_int_change_flow_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:10539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - flow
    - upper_detected_protocol
    - lower_detected_protocol
    - confidence
    argTypes:
    - struct ndpi_flow_struct*
    - u_int16_t
    - u_int16_t
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 10540
      start: 10530
    functionDepth: 1
    functionLinenumber: 10530
    functionLinenumberEnd: 10540
    functionName: ndpi_int_change_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 3
    functionsReached:
    - ndpi_int_change_flow_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_change_protocol(struct ndpi_flow_struct *flow,\n\t\t\t\t
      \    u_int16_t upper_detected_protocol, u_int16_t lower_detected_protocol,\n\t\t\t\t
      \    ndpi_confidence_t confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - flow
    - protocol_category
    argTypes:
    - struct ndpi_flow_struct*
    - ndpi_protocol_category_t
    constantsTouched: []
    func_position:
      end: 10547
      start: 10544
    functionDepth: 0
    functionLinenumber: 10544
    functionLinenumberEnd: 10547
    functionName: change_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void change_category(struct ndpi_flow_struct *flow,\n\t\t     ndpi_protocol_category_t
      protocol_category)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ip
    argTypes:
    - ndpi_ip_addr_t*
    constantsTouched: []
    func_position:
      end: 10554
      start: 10551
    functionDepth: 0
    functionLinenumber: 10551
    functionLinenumberEnd: 10554
    functionName: ndpi_is_ipv6
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_ipv6(const ndpi_ip_addr_t *ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:10561,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_main.c:10564,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ip
    - buf
    - buf_len
    argTypes:
    - ndpi_ip_addr_t*
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 10573
      start: 10558
    functionDepth: 1
    functionLinenumber: 10558
    functionLinenumberEnd: 10573
    functionName: ndpi_get_ip_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - ndpi_is_ipv6
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: char *ndpi_get_ip_string(const ndpi_ip_addr_t *ip, char *buf, u_int
      buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:10580,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:10582,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:10583,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/ndpi_main.c:10586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ip_str
    - parsed_ip
    argTypes:
    - char*
    - ndpi_ip_addr_t*
    constantsTouched: []
    func_position:
      end: 10591
      start: 10578
    functionDepth: 0
    functionLinenumber: 10578
    functionLinenumberEnd: 10591
    functionName: ndpi_parse_ip_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memset
    - strchr
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int ndpi_parse_ip_string(const char *ip_str, ndpi_ip_addr_t *parsed_ip)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bytestream_to_number
      Src: /src/ndpi/src/lib/ndpi_main.c:10597,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_main.c:10598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - max_chars_to_read
    - bytes_read
    argTypes:
    - u_int8_t*
    - u_int16_t
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 10599
      start: 10595
    functionDepth: 1
    functionLinenumber: 10595
    functionLinenumberEnd: 10599
    functionName: ntohs_ndpi_bytestream_to_number
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ntohs
    - ndpi_bytestream_to_number
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ntohs_ndpi_bytestream_to_number(const u_int8_t *str,\n\t\t\t\t\t
      \ u_int16_t max_chars_to_read, u_int16_t *bytes_read)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - proto
    - p
    argTypes:
    - ndpi_master_app_protocol
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 10605
      start: 10603
    functionDepth: 0
    functionLinenumber: 10603
    functionLinenumberEnd: 10605
    functionName: ndpi_is_proto
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ndpi_is_proto(ndpi_master_app_protocol proto, u_int16_t p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - proto
    argTypes:
    - ndpi_master_app_protocol
    constantsTouched: []
    func_position:
      end: 10612
      start: 10609
    functionDepth: 0
    functionLinenumber: 10609
    functionLinenumberEnd: 10612
    functionName: ndpi_is_proto_unknown
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ndpi_is_proto_unknown(ndpi_master_app_protocol proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:10620,1
    - Dst: ndpi_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:10623,1
    - Dst: ndpi_is_proto
      Src: /src/ndpi/src/lib/ndpi_main.c:10628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - to_check
    - to_match
    - exact_match_only
    argTypes:
    - ndpi_master_app_protocol
    - ndpi_master_app_protocol
    - bool
    constantsTouched: []
    func_position:
      end: 10634
      start: 10616
    functionDepth: 1
    functionLinenumber: 10616
    functionLinenumberEnd: 10634
    functionName: ndpi_is_proto_equals
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ndpi_is_proto
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_is_proto_equals(ndpi_master_app_protocol to_check,\n\t\t\t
      \ ndpi_master_app_protocol to_match, bool exact_match_only)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto
    argTypes:
    - ndpi_protocol
    constantsTouched: []
    func_position:
      end: 10640
      start: 10638
    functionDepth: 0
    functionLinenumber: 10638
    functionLinenumberEnd: 10640
    functionName: ndpi_get_lower_proto
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_get_lower_proto(ndpi_protocol proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto
    argTypes:
    - ndpi_protocol
    constantsTouched: []
    func_position:
      end: 10646
      start: 10644
    functionDepth: 0
    functionLinenumber: 10644
    functionLinenumberEnd: 10646
    functionName: ndpi_get_upper_proto
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_get_upper_proto(ndpi_protocol proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:10659,1
    - Dst: search_into_bittorrent_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:10675,1
    - Dst: guess_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10680,1
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/ndpi_main.c:10683,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_main.c:10686,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 10690
      start: 10650
    functionDepth: 3
    functionLinenumber: 10650
    functionLinenumberEnd: 10690
    functionName: ndpi_internal_guess_undetected_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_proto_category
    - search_into_bittorrent_cache
    - printf
    - guess_protocol_id
    linkageType: ''
    returnType: ndpi_protocol
    signature: "ndpi_protocol ndpi_internal_guess_undetected_protocol(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t\t\t     struct ndpi_flow_struct *flow, u_int8_t proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/ndpi/src/lib/ndpi_main.c:10713,1
    - Dst: ndpi_network_port_ptree_match
      Src: /src/ndpi/src/lib/ndpi_main.c:10714,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_main.c:10714,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/ndpi_main.c:10717,1
    - Dst: ndpi_network_port_ptree_match
      Src: /src/ndpi/src/lib/ndpi_main.c:10718,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_main.c:10718,1
    - Dst: ndpi_search_tcp_or_udp_raw
      Src: /src/ndpi/src/lib/ndpi_main.c:10722,1
    - Dst: guess_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10730,1
    - Dst: guess_protocol_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10735,1
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/ndpi_main.c:10740,1
    - Dst: ndpi_guess_undetected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:10745,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 7
    argNames:
    - ndpi_str
    - flow
    - proto
    - shost
    - sport
    - dhost
    - dport
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t
    - u_int32_t
    - u_int16_t
    - u_int32_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 10746
      start: 10696
    functionDepth: 3
    functionLinenumber: 10696
    functionLinenumberEnd: 10746
    functionName: ndpi_guess_undetected_protocol_v4
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_network_port_ptree_match
    - ndpi_get_proto_category
    - ndpi_search_tcp_or_udp_raw
    - htonl
    - ndpi_guess_undetected_protocol
    - htons
    - guess_protocol_id
    linkageType: ''
    returnType: ndpi_protocol
    signature: "ndpi_protocol ndpi_guess_undetected_protocol_v4(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t\tstruct ndpi_flow_struct *flow, u_int8_t proto,\n\t\t\t\t\t\tu_int32_t
      shost /* host byte order */, u_int16_t sport,\n\t\t\t\t\t\tu_int32_t dhost /*
      host byte order */, u_int16_t dport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_internal_guess_undetected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:10752,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10754,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 10758
      start: 10750
    functionDepth: 4
    functionLinenumber: 10750
    functionLinenumberEnd: 10758
    functionName: ndpi_guess_undetected_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_internal_guess_undetected_protocol
    - ndpi_map_ndpi_id_to_user_proto_id
    linkageType: ''
    returnType: ndpi_protocol
    signature: "ndpi_protocol ndpi_guess_undetected_protocol(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t     struct ndpi_flow_struct *flow, u_int8_t proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10765,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10767,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - proto
    - buf
    - buf_len
    argTypes:
    - ndpi_protocol
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 10772
      start: 10762
    functionDepth: 1
    functionLinenumber: 10762
    functionLinenumberEnd: 10772
    functionName: ndpi_protocol2id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: char *ndpi_protocol2id(ndpi_protocol proto, char *buf, u_int buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10780,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/src/lib/ndpi_main.c:10780,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/src/lib/ndpi_main.c:10781,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10783,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/src/lib/ndpi_main.c:10783,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10785,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/src/lib/ndpi_main.c:10785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ndpi_str
    - proto
    - buf
    - buf_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_protocol
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 10788
      start: 10776
    functionDepth: 1
    functionLinenumber: 10776
    functionLinenumberEnd: 10788
    functionName: ndpi_protocol2name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_proto_name
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: "char *ndpi_protocol2name(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      ndpi_protocol proto, char *buf, u_int buf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - category
    argTypes:
    - ndpi_protocol_category_t
    constantsTouched: []
    func_position:
      end: 10804
      start: 10792
    functionDepth: 0
    functionLinenumber: 10792
    functionLinenumberEnd: 10804
    functionName: ndpi_is_custom_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_is_custom_category(ndpi_protocol_category_t category)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10816,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10820,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10824,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10828,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10832,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - ndpi_str
    - category
    - name
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_protocol_category_t
    - char*
    constantsTouched: []
    func_position:
      end: 10838
      start: 10808
    functionDepth: 1
    functionLinenumber: 10808
    functionLinenumberEnd: 10838
    functionName: ndpi_category_set_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: void
    signature: "void ndpi_category_set_name(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \   ndpi_protocol_category_t category,\n\t\t\t    char *name)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - confidence
    argTypes:
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 10878
      start: 10842
    functionDepth: 0
    functionLinenumber: 10842
    functionLinenumberEnd: 10878
    functionName: ndpi_confidence_get_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ndpi_confidence_get_name(ndpi_confidence_t confidence)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - fpc_confidence
    argTypes:
    - ndpi_fpc_confidence_t
    constantsTouched: []
    func_position:
      end: 10900
      start: 10882
    functionDepth: 0
    functionLinenumber: 10882
    functionLinenumberEnd: 10900
    functionName: ndpi_fpc_confidence_get_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ndpi_fpc_confidence_get_name(ndpi_fpc_confidence_t fpc_confidence)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10910,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:10912,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - ndpi_str
    - category
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_protocol_category_t
    constantsTouched: []
    func_position:
      end: 10931
      start: 10904
    functionDepth: 1
    functionLinenumber: 10904
    functionLinenumberEnd: 10931
    functionName: ndpi_category_get_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: "char *ndpi_category_get_name(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t\t
      \  ndpi_protocol_category_t category)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 10949
      start: 10935
    functionDepth: 0
    functionLinenumber: 10935
    functionLinenumberEnd: 10949
    functionName: category_depends_on_master
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int category_depends_on_master(int proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_map_user_proto_id_to_ndpi_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10960,1
    - Dst: ndpi_map_user_proto_id_to_ndpi_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10961,1
    - Dst: category_depends_on_master
      Src: /src/ndpi/src/lib/ndpi_main.c:10966,1
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_main.c:10967,1
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_main.c:10971,1
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_main.c:10973,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_str
    - proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_protocol
    constantsTouched: []
    func_position:
      end: 10977
      start: 10953
    functionDepth: 2
    functionLinenumber: 10953
    functionLinenumberEnd: 10977
    functionName: ndpi_get_proto_category
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 5
    functionsReached:
    - ndpi_map_user_proto_id_to_ndpi_id
    - category_depends_on_master
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: ndpi_protocol_category_t
    signature: "ndpi_protocol_category_t ndpi_get_proto_category(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t\t ndpi_protocol proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_map_user_proto_id_to_ndpi_id
      Src: /src/ndpi/src/lib/ndpi_main.c:10985,1
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_main.c:10987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_str
    - proto_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 10992
      start: 10981
    functionDepth: 2
    functionLinenumber: 10981
    functionLinenumberEnd: 10992
    functionName: ndpi_get_proto_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_map_user_proto_id_to_ndpi_id
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: char
    signature: "char *ndpi_get_proto_name(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \ u_int16_t proto_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_map_user_proto_id_to_ndpi_id
      Src: /src/ndpi/src/lib/ndpi_main.c:11001,1
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_main.c:11003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_str
    - proto_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 11008
      start: 10996
    functionDepth: 2
    functionLinenumber: 10996
    functionLinenumberEnd: 11008
    functionName: ndpi_get_proto_breed
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_map_user_proto_id_to_ndpi_id
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: ndpi_protocol_breed_t
    signature: "ndpi_protocol_breed_t ndpi_get_proto_breed(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t   u_int16_t proto_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - breed_id
    argTypes:
    - ndpi_protocol_breed_t
    constantsTouched: []
    func_position:
      end: 11033
      start: 11012
    functionDepth: 0
    functionLinenumber: 11012
    functionLinenumberEnd: 11033
    functionName: ndpi_get_proto_breed_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ndpi_get_proto_breed_name(ndpi_protocol_breed_t breed_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_main.c:11050,1
    - Dst: strcasecmp
      Src: /src/ndpi/src/lib/ndpi_main.c:11051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 11057
      start: 11035
    functionDepth: 0
    functionLinenumber: 11035
    functionLinenumberEnd: 11057
    functionName: ndpi_get_breed_by_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - tolower
    linkageType: ''
    returnType: ndpi_protocol_breed_t
    signature: ndpi_protocol_breed_t ndpi_get_breed_by_name(const char *name)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/src/lib/ndpi_main.c:11064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_str
    - proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 11065
      start: 11063
    functionDepth: 3
    functionLinenumber: 11063
    functionLinenumberEnd: 11065
    functionName: ndpi_get_protocol_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_proto_by_name
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_get_protocol_id(struct ndpi_detection_module_struct
      *ndpi_str, char *proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_main.c:11084,1
    - Dst: strcasecmp
      Src: /src/ndpi/src/lib/ndpi_main.c:11085,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_str
    - cat
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 11091
      start: 11070
    functionDepth: 0
    functionLinenumber: 11070
    functionLinenumberEnd: 11091
    functionName: ndpi_get_category_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - tolower
    linkageType: ''
    returnType: int
    signature: int ndpi_get_category_id(struct ndpi_detection_module_struct *ndpi_str,
      char *cat)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11107,1
    - Dst: sprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11109,1
    - Dst: strcat
      Src: /src/ndpi/src/lib/ndpi_main.c:11110,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:11115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ports_str
    - default_ports
    argTypes:
    - char*
    - ndpi_port_range*
    constantsTouched: []
    func_position:
      end: 11118
      start: 11095
    functionDepth: 0
    functionLinenumber: 11095
    functionLinenumberEnd: 11118
    functionName: default_ports_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - sprintf
    - strcat
    - strlen
    linkageType: ''
    returnType: char
    signature: char *default_ports_string(char *ports_str, ndpi_port_range *default_ports)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/src/lib/ndpi_main.c:11127,1
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:11129,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11133,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/src/lib/ndpi_main.c:11134,1
    - Dst: ndpi_get_l4_proto_name
      Src: /src/ndpi/src/lib/ndpi_main.c:11136,1
    - Dst: ndpi_get_l4_proto_info
      Src: /src/ndpi/src/lib/ndpi_main.c:11136,1
    - Dst: ndpi_get_proto_breed_name
      Src: /src/ndpi/src/lib/ndpi_main.c:11138,1
    - Dst: ndpi_category_get_name
      Src: /src/ndpi/src/lib/ndpi_main.c:11139,1
    - Dst: default_ports_string
      Src: /src/ndpi/src/lib/ndpi_main.c:11140,1
    - Dst: default_ports_string
      Src: /src/ndpi/src/lib/ndpi_main.c:11141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_str
    - dump_out
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    constantsTouched: []
    func_position:
      end: 11146
      start: 11122
    functionDepth: 4
    functionLinenumber: 11122
    functionLinenumberEnd: 11146
    functionName: ndpi_dump_protocols
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_map_ndpi_id_to_user_proto_id
    - fprintf
    - ndpi_get_proto_breed_name
    - ndpi_finalize_initialization
    - ndpi_get_num_protocols
    - ndpi_get_l4_proto_info
    - default_ports_string
    - ndpi_category_get_name
    - ndpi_get_l4_proto_name
    linkageType: ''
    returnType: void
    signature: void ndpi_dump_protocols(struct ndpi_detection_module_struct *ndpi_str,
      FILE *dump_out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:11157,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/src/lib/ndpi_main.c:11160,1
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:11165,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11166,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11178,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11190,1
    - Dst: ndpi_risk2str
      Src: /src/ndpi/src/lib/ndpi_main.c:11191,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11197,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:11201,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - opt
    - options_out
    argTypes:
    - u_int
    - FILE*
    constantsTouched: []
    func_position:
      end: 11202
      start: 11152
    functionDepth: 4
    functionLinenumber: 11152
    functionLinenumberEnd: 11202
    functionName: ndpi_generate_options
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_risk2str
    - fprintf
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_get_num_protocols
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: void
    signature: void ndpi_generate_options(u_int opt, FILE *options_out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11212,1
    - Dst: ndpi_risk2severity
      Src: /src/ndpi/src/lib/ndpi_main.c:11218,1
    - Dst: ndpi_risk2score
      Src: /src/ndpi/src/lib/ndpi_main.c:11221,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11223,1
    - Dst: ndpi_risk2code
      Src: /src/ndpi/src/lib/ndpi_main.c:11224,1
    - Dst: ndpi_risk2str
      Src: /src/ndpi/src/lib/ndpi_main.c:11224,1
    - Dst: ndpi_severity2str
      Src: /src/ndpi/src/lib/ndpi_main.c:11225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - risk_out
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 11229
      start: 11206
    functionDepth: 1
    functionLinenumber: 11206
    functionLinenumberEnd: 11229
    functionName: ndpi_dump_risks_score
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_risk2str
    - fprintf
    - ndpi_risk2severity
    - ndpi_risk2score
    - ndpi_risk2code
    - ndpi_severity2str
    linkageType: ''
    returnType: void
    signature: void ndpi_dump_risks_score(FILE *risk_out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_memmem
      Src: /src/ndpi/src/lib/ndpi_main.c:11239,1
    - Dst: strnlen
      Src: /src/ndpi/src/lib/ndpi_main.c:11239,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:11239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - haystack
    - needle
    - len
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 11240
      start: 11233
    functionDepth: 1
    functionLinenumber: 11233
    functionLinenumberEnd: 11240
    functionName: ndpi_strnstr
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strnlen
    - ndpi_memmem
    - strlen
    linkageType: ''
    returnType: char
    signature: char *ndpi_strnstr(const char *haystack, const char *needle, size_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_main.c:11273,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/ndpi_main.c:11274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - s
    - find
    - len
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 11281
      start: 11248
    functionDepth: 0
    functionLinenumber: 11248
    functionLinenumberEnd: 11281
    functionName: ndpi_strncasestr
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - tolower
    - strncasecmp
    linkageType: ''
    returnType: char
    signature: char * ndpi_strncasestr(const char *s, const char *find, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - payload
    - payload_len
    - str
    - str_len
    argTypes:
    - u_int8_t*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 11290
      start: 11285
    functionDepth: 0
    functionLinenumber: 11285
    functionLinenumberEnd: 11290
    functionName: ndpi_match_prefix
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ndpi_match_prefix(const u_int8_t *payload,\n\t\t      size_t payload_len,
      const char *str, size_t str_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_match_string_common
      Src: /src/ndpi/src/lib/ndpi_main.c:11304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - ndpi_str
    - string_to_match
    - string_to_match_len
    - ret_match
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int
    - ndpi_protocol_match_result*
    constantsTouched: []
    func_position:
      end: 11308
      start: 11294
    functionDepth: 2
    functionLinenumber: 11294
    functionLinenumberEnd: 11308
    functionName: ndpi_match_string_subprotocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_match_string_common
    linkageType: ''
    returnType: int
    signature: "int ndpi_match_string_subprotocol(struct ndpi_detection_module_struct
      *ndpi_str, char *string_to_match,\n\t\t\t\t  u_int string_to_match_len, ndpi_protocol_match_result
      *ret_match)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - previous_proto
    - new_proto
    argTypes:
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 11331
      start: 11312
    functionDepth: 0
    functionLinenumber: 11312
    functionLinenumberEnd: 11331
    functionName: ndpi_is_more_generic_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_more_generic_protocol(u_int16_t previous_proto, u_int16_t
      new_proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_match_string_subprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:11342,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:11350,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_main.c:11352,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:11355,1
    - Dst: ndpi_is_more_generic_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:11362,1
    - Dst: category_depends_on_master
      Src: /src/ndpi/src/lib/ndpi_main.c:11367,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:11379,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_main.c:11381,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:11384,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 6
    argNames:
    - ndpi_str
    - flow
    - string_to_match
    - string_to_match_len
    - master_protocol_id
    - ret_match
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    - u_int
    - u_int16_t
    - ndpi_protocol_match_result*
    constantsTouched: []
    func_position:
      end: 11392
      start: 11335
    functionDepth: 3
    functionLinenumber: 11335
    functionLinenumberEnd: 11392
    functionName: ndpi_automa_match_string_subprotocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG2
    - ndpi_min
    - strncpy
    - ndpi_is_more_generic_protocol
    - ndpi_match_string_subprotocol
    - category_depends_on_master
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_automa_match_string_subprotocol(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t\t      struct ndpi_flow_struct *flow, char *string_to_match,\n\t\t\t\t\t\t
      \     u_int string_to_match_len, u_int16_t master_protocol_id,\n\t\t\t\t\t\t
      \     ndpi_protocol_match_result *ret_match)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:11403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - subprotocol_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 11406
      start: 11396
    functionDepth: 1
    functionLinenumber: 11396
    functionLinenumberEnd: 11406
    functionName: ndpi_check_subprotocol_risk
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_subprotocol_risk(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t struct ndpi_flow_struct *flow, u_int16_t subprotocol_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_main.c:11421,1
    - Dst: ndpi_automa_match_string_subprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:11423,1
    - Dst: ndpi_get_custom_category_match
      Src: /src/ndpi/src/lib/ndpi_main.c:11428,1
    - Dst: ndpi_match_string_common
      Src: /src/ndpi/src/lib/ndpi_main.c:11439,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:11443,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_main.c:11446,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:11446,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:11447,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:11449,1
    - Dst: ndpi_check_punycode_string
      Src: /src/ndpi/src/lib/ndpi_main.c:11455,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/ndpi_main.c:11456,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_main.c:11459,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:11459,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:11460,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:11462,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 7
    argNames:
    - ndpi_str
    - flow
    - string_to_match
    - string_to_match_len
    - ret_match
    - master_protocol_id
    - update_flow_classification
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    - u_int
    - ndpi_protocol_match_result*
    - u_int16_t
    - int
    constantsTouched: []
    func_position:
      end: 11467
      start: 11410
    functionDepth: 4
    functionLinenumber: 11410
    functionLinenumberEnd: 11467
    functionName: ndpi_match_host_subprotocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memset
    - ndpi_get_custom_category_match
    - ndpi_set_risk
    - ndpi_min
    - ndpi_match_string_common
    - strncpy
    - is_flowrisk_info_enabled
    - ndpi_check_punycode_string
    - ndpi_automa_match_string_subprotocol
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_match_host_subprotocol(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t      struct ndpi_flow_struct *flow,\n\t\t\t\t      char
      *string_to_match, u_int string_to_match_len,\n\t\t\t\t      ndpi_protocol_match_result
      *ret_match,\n\t\t\t\t      u_int16_t master_protocol_id,\n\t\t\t\t      int
      update_flow_classification)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_match_host_subprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:11485,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/ndpi_main.c:11489,1
    - Dst: category_depends_on_master
      Src: /src/ndpi/src/lib/ndpi_main.c:11490,1
    - Dst: change_category
      Src: /src/ndpi/src/lib/ndpi_main.c:11491,1
    - Dst: ookla_add_to_cache
      Src: /src/ndpi/src/lib/ndpi_main.c:11494,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - ndpi_struct
    - flow
    - master_protocol
    - name
    - name_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 11500
      start: 11471
    functionDepth: 5
    functionLinenumber: 11471
    functionLinenumberEnd: 11500
    functionName: ndpi_match_hostname_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ookla_add_to_cache
    - ndpi_match_host_subprotocol
    - ndpi_set_detected_protocol
    - category_depends_on_master
    - change_category
    linkageType: ''
    returnType: int
    signature: "int ndpi_match_hostname_protocol(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t struct ndpi_flow_struct *flow,\n\t\t\t\t u_int16_t master_protocol,
      char *name, u_int name_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - map
    - l
    - str
    argTypes:
    - unsigned int*
    - unsigned int
    - char*
    constantsTouched: []
    func_position:
      end: 11515
      start: 11504
    functionDepth: 0
    functionLinenumber: 11504
    functionLinenumberEnd: 11515
    functionName: ndpi_match_xgram
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_match_xgram(unsigned int *map,unsigned int l,const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_match_xgram
      Src: /src/ndpi/src/lib/ndpi_main.c:11518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 11519
      start: 11517
    functionDepth: 1
    functionLinenumber: 11517
    functionLinenumberEnd: 11519
    functionName: ndpi_match_bigram
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_match_xgram
    linkageType: ''
    returnType: int
    signature: int ndpi_match_bigram(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_match_xgram
      Src: /src/ndpi/src/lib/ndpi_main.c:11522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 11523
      start: 11521
    functionDepth: 1
    functionLinenumber: 11521
    functionLinenumberEnd: 11523
    functionName: ndpi_match_impossible_bigram
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_match_xgram
    linkageType: ''
    returnType: int
    signature: int ndpi_match_impossible_bigram(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_match_xgram
      Src: /src/ndpi/src/lib/ndpi_main.c:11528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 11529
      start: 11527
    functionDepth: 1
    functionLinenumber: 11527
    functionLinenumberEnd: 11529
    functionName: ndpi_match_trigram
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_match_xgram
    linkageType: ''
    returnType: int
    signature: int ndpi_match_trigram(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free_flow_data
      Src: /src/ndpi/src/lib/ndpi_main.c:11535,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:11536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 11538
      start: 11533
    functionDepth: 2
    functionLinenumber: 11533
    functionLinenumberEnd: 11538
    functionName: ndpi_free_flow
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_free_flow_data
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_flow(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11544
      start: 11542
    functionDepth: 0
    functionLinenumber: 11542
    functionLinenumberEnd: 11544
    functionName: ndpi_revision
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ndpi_revision()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11550
      start: 11548
    functionDepth: 0
    functionLinenumber: 11548
    functionLinenumberEnd: 11550
    functionName: ndpi_get_api_version
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_get_api_version()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcry_check_version
      Src: /src/ndpi/src/lib/ndpi_main.c:11553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11554
      start: 11552
    functionDepth: 1
    functionLinenumber: 11552
    functionLinenumberEnd: 11554
    functionName: ndpi_get_gcrypt_version
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - gcry_check_version
    linkageType: ''
    returnType: char
    signature: char *ndpi_get_gcrypt_version(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 11558
      start: 11556
    functionDepth: 0
    functionLinenumber: 11556
    functionLinenumberEnd: 11558
    functionName: ndpi_get_proto_defaults
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ndpi_proto_defaults_t
    signature: ndpi_proto_defaults_t *ndpi_get_proto_defaults(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11562
      start: 11560
    functionDepth: 0
    functionLinenumber: 11560
    functionLinenumberEnd: 11562
    functionName: ndpi_get_ndpi_detection_module_size
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int ndpi_get_ndpi_detection_module_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 11571
      start: 11566
    functionDepth: 0
    functionLinenumber: 11566
    functionLinenumberEnd: 11571
    functionName: ndpi_get_current_time
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_get_current_time(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:11582,1
    - Dst: ndpi_check_probing_attempt
      Src: /src/ndpi/src/lib/ndpi_main.c:11588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 11593
      start: 11580
    functionDepth: 2
    functionLinenumber: 11580
    functionLinenumberEnd: 11593
    functionName: ndpi_extra_dissection_possible
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_check_probing_attempt
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_extra_dissection_possible(struct ndpi_detection_module_struct
      *ndpi_str,\n                                        struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - proto
    argTypes:
    - ndpi_l4_proto_info
    constantsTouched: []
    func_position:
      end: 11613
      start: 11597
    functionDepth: 0
    functionLinenumber: 11597
    functionLinenumberEnd: 11613
    functionName: ndpi_get_l4_proto_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ndpi_get_l4_proto_name(ndpi_l4_proto_info proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:11619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - ndpi_proto_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 11632
      start: 11617
    functionDepth: 1
    functionLinenumber: 11617
    functionLinenumberEnd: 11632
    functionName: ndpi_get_l4_proto_info
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_get_num_protocols
    linkageType: ''
    returnType: ndpi_l4_proto_info
    signature: "ndpi_l4_proto_info ndpi_get_l4_proto_info(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t  u_int16_t ndpi_proto_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:11637,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/src/lib/ndpi_main.c:11640,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/src/lib/ndpi_main.c:11641,1
    - Dst: ndpi_ptree_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:11644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11650
      start: 11636
    functionDepth: 1
    functionLinenumber: 11636
    functionLinenumberEnd: 11650
    functionName: ndpi_ptree_create
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 2
    functionsReached:
    - ndpi_ptree_destroy
    - ndpi_patricia_new
    - ndpi_malloc
    linkageType: ''
    returnType: ndpi_ptree_t
    signature: ndpi_ptree_t *ndpi_ptree_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:11657,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/src/lib/ndpi_main.c:11660,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_main.c:11662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - tree
    argTypes:
    - ndpi_ptree_t*
    constantsTouched: []
    func_position:
      end: 11664
      start: 11654
    functionDepth: 1
    functionLinenumber: 11654
    functionLinenumberEnd: 11664
    functionName: ndpi_ptree_destroy
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 2
    functionsReached:
    - ndpi_patricia_destroy
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_ptree_destroy(ndpi_ptree_t *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:11670,1
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:11684,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:11686,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:11689,1
    - Dst: ndpi_patricia_lookup
      Src: /src/ndpi/src/lib/ndpi_main.c:11694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - tree
    - addr
    - bits
    - user_data
    argTypes:
    - ndpi_ptree_t*
    - ndpi_ip_addr_t*
    - u_int8_t
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 11703
      start: 11668
    functionDepth: 1
    functionLinenumber: 11668
    functionLinenumberEnd: 11703
    functionName: ndpi_ptree_insert
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_is_ipv6
    - ndpi_patricia_search_best
    - ndpi_patricia_lookup
    - ndpi_fill_prefix_v4
    - ndpi_fill_prefix_v6
    linkageType: ''
    returnType: int
    signature: "int ndpi_ptree_insert(ndpi_ptree_t *tree, const ndpi_ip_addr_t *addr,\n\t\t
      \     u_int8_t bits, u_int64_t user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_ipv6
      Src: /src/ndpi/src/lib/ndpi_main.c:11709,1
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_main.c:11722,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_main.c:11725,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_main.c:11728,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tree
    - addr
    - user_data
    argTypes:
    - ndpi_ptree_t*
    - ndpi_ip_addr_t*
    - u_int64_t*
    constantsTouched: []
    func_position:
      end: 11737
      start: 11707
    functionDepth: 1
    functionLinenumber: 11707
    functionLinenumberEnd: 11737
    functionName: ndpi_ptree_match_addr
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_fill_prefix_v6
    - ndpi_is_ipv6
    - ndpi_patricia_search_best
    - ndpi_fill_prefix_v4
    linkageType: ''
    returnType: int
    signature: "int ndpi_ptree_match_addr(ndpi_ptree_t *tree,\n\t\t\t  const ndpi_ip_addr_t
      *addr, u_int64_t *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_MD5Init
      Src: /src/ndpi/src/lib/ndpi_main.c:11744,1
    - Dst: ndpi_MD5Update
      Src: /src/ndpi/src/lib/ndpi_main.c:11745,1
    - Dst: ndpi_MD5Final
      Src: /src/ndpi/src/lib/ndpi_main.c:11746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - data_len
    - hash
    argTypes:
    - u_char*
    - size_t
    - u_char[]
    constantsTouched: []
    func_position:
      end: 11747
      start: 11741
    functionDepth: 1
    functionLinenumber: 11741
    functionLinenumberEnd: 11747
    functionName: ndpi_md5
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_MD5Update
    - ndpi_MD5Init
    - ndpi_MD5Final
    linkageType: ''
    returnType: void
    signature: void ndpi_md5(const u_char *data, size_t data_len, u_char hash[16])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_sha256_init
      Src: /src/ndpi/src/lib/ndpi_main.c:11754,1
    - Dst: ndpi_sha256_update
      Src: /src/ndpi/src/lib/ndpi_main.c:11755,1
    - Dst: ndpi_sha256_final
      Src: /src/ndpi/src/lib/ndpi_main.c:11756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - data_len
    - sha_hash
    argTypes:
    - u_char*
    - size_t
    - u_int8_t[]
    constantsTouched: []
    func_position:
      end: 11757
      start: 11751
    functionDepth: 1
    functionLinenumber: 11751
    functionLinenumberEnd: 11757
    functionName: ndpi_sha256
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_sha256_init
    - ndpi_sha256_update
    - ndpi_sha256_final
    linkageType: ''
    returnType: void
    signature: void ndpi_sha256(const u_char *data, size_t data_len, u_int8_t sha_hash[32])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 11770
      start: 11761
    functionDepth: 0
    functionLinenumber: 11761
    functionLinenumberEnd: 11770
    functionName: enough
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int enough(int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:11776,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:11777,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:11782,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:11784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ndpi_struct
    - str
    - ends
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 11787
      start: 11774
    functionDepth: 0
    functionLinenumber: 11774
    functionLinenumberEnd: 11787
    functionName: ends_with
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ends_with(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                  char *str, char *ends)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_main.c:11792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 11796
      start: 11791
    functionDepth: 0
    functionLinenumber: 11791
    functionLinenumberEnd: 11796
    functionName: ndpi_is_trigram_char
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_isdigit
    linkageType: ''
    returnType: int
    signature: int ndpi_is_trigram_char(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 11814
      start: 11800
    functionDepth: 0
    functionLinenumber: 11800
    functionLinenumberEnd: 11814
    functionName: ndpi_is_vowel
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_is_vowel(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/src/lib/ndpi_main.c:11824,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:11832,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:11843,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/ndpi_main.c:11844,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/ndpi_main.c:11845,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/ndpi_main.c:11846,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/ndpi_main.c:11848,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/ndpi_main.c:11849,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/ndpi_main.c:11850,1
    - Dst: ndpi_match_string_subprotocol
      Src: /src/ndpi/src/lib/ndpi_main.c:11858,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:11858,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_main.c:11861,1
    - Dst: inet_addr
      Src: /src/ndpi/src/lib/ndpi_main.c:11864,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:11865,1
    - Dst: inet_ntoa
      Src: /src/ndpi/src/lib/ndpi_main.c:11865,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:11869,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:11872,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:11874,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:11883,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:11886,1
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_main.c:11892,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_main.c:11897,1
    - Dst: ndpi_is_vowel
      Src: /src/ndpi/src/lib/ndpi_main.c:11901,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_main.c:11910,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_main.c:11913,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:11959,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:11979,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:11982,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:11992,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_main.c:11992,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:12002,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/ndpi_main.c:12004,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:12007,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:12007,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_main.c:12012,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:12045,1
    - Dst: ndpi_match_impossible_bigram
      Src: /src/ndpi/src/lib/ndpi_main.c:12047,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:12048,1
    - Dst: ndpi_match_bigram
      Src: /src/ndpi/src/lib/ndpi_main.c:12053,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:12061,1
    - Dst: ndpi_is_trigram_char
      Src: /src/ndpi/src/lib/ndpi_main.c:12063,1
    - Dst: ndpi_is_trigram_char
      Src: /src/ndpi/src/lib/ndpi_main.c:12063,1
    - Dst: ndpi_is_trigram_char
      Src: /src/ndpi/src/lib/ndpi_main.c:12063,1
    - Dst: ndpi_match_trigram
      Src: /src/ndpi/src/lib/ndpi_main.c:12069,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:12072,1
    - Dst: ndpi_is_vowel
      Src: /src/ndpi/src/lib/ndpi_main.c:12075,1
    - Dst: ndpi_is_vowel
      Src: /src/ndpi/src/lib/ndpi_main.c:12075,1
    - Dst: ndpi_is_vowel
      Src: /src/ndpi/src/lib/ndpi_main.c:12075,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:12090,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:12092,1
    - Dst: enough
      Src: /src/ndpi/src/lib/ndpi_main.c:12106,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:12126,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/ndpi_main.c:12130,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_main.c:12133,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 182
    argCount: 6
    argNames:
    - ndpi_str
    - flow
    - name
    - is_hostname
    - check_subproto
    - flow_fully_classified
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    - u_int8_t
    - u_int8_t
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 12137
      start: 11818
    functionDepth: 3
    functionLinenumber: 11818
    functionLinenumberEnd: 12137
    functionName: ndpi_check_dga_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - strncmp
    - enough
    - ndpi_match_trigram
    - strlen
    - ndpi_set_risk
    - NDPI_LOG_DBG2
    - ndpi_is_vowel
    - ndpi_match_string_subprotocol
    - strtok_r
    - ndpi_is_trigram_char
    - ndpi_get_host_domain
    - inet_addr
    - ends_with
    - strcmp
    - ndpi_snprintf
    - strchr
    - ndpi_match_impossible_bigram
    - inet_ntoa
    - ndpi_isdigit
    - tolower
    - ndpi_match_bigram
    linkageType: ''
    returnType: int
    signature: "int ndpi_check_dga_name(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\tstruct
      ndpi_flow_struct *flow,\n\t\t\tchar *name, u_int8_t is_hostname, u_int8_t check_subproto,\n\t\t\tu_int8_t
      flow_fully_classified)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - risk
    argTypes:
    - ndpi_risk_enum
    constantsTouched: []
    func_position:
      end: 12143
      start: 12141
    functionDepth: 0
    functionLinenumber: 12141
    functionLinenumberEnd: 12143
    functionName: ndpi_risk2severity
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ndpi_risk_info
    signature: ndpi_risk_info * ndpi_risk2severity(ndpi_risk_enum risk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:12153,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:12157,1
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_main.c:12164,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/ndpi_main.c:12167,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - flow
    - value
    - value_len
    - normalize
    argTypes:
    - struct ndpi_flow_struct*
    - u_int8_t*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 12182
      start: 12147
    functionDepth: 0
    functionLinenumber: 12147
    functionLinenumberEnd: 12182
    functionName: ndpi_hostname_sni_set
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_isprint
    - tolower
    - memcpy
    - ndpi_min
    linkageType: ''
    returnType: char
    signature: "char *ndpi_hostname_sni_set(struct ndpi_flow_struct *flow,\n\t\t\t
      \   const u_int8_t *value, size_t value_len,\n\t\t\t    int normalize)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_main.c:12196,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:12198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - flow
    - value
    - value_len
    argTypes:
    - struct ndpi_flow_struct*
    - u_int8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 12203
      start: 12186
    functionDepth: 0
    functionLinenumber: 12186
    functionLinenumberEnd: 12203
    functionName: ndpi_user_agent_set
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_malloc
    linkageType: ''
    returnType: char
    signature: "char *ndpi_user_agent_set(struct ndpi_flow_struct *flow,\n\t\t\t  const
      u_int8_t *value, size_t value_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 12214
      start: 12207
    functionDepth: 0
    functionLinenumber: 12207
    functionLinenumberEnd: 12214
    functionName: ndpi_seen_flow_beginning
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_seen_flow_beginning(const struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_main.c:12226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_str
    - user_data
    argTypes:
    - struct ndpi_detection_module_struct*
    - void*
    constantsTouched: []
    func_position:
      end: 12230
      start: 12218
    functionDepth: 0
    functionLinenumber: 12218
    functionLinenumberEnd: 12230
    functionName: ndpi_set_user_data
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    linkageType: ''
    returnType: void
    signature: void ndpi_set_user_data(struct ndpi_detection_module_struct *ndpi_str,
      void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 12239
      start: 12234
    functionDepth: 0
    functionLinenumber: 12234
    functionLinenumberEnd: 12239
    functionName: ndpi_get_user_data
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ndpi_get_user_data(struct ndpi_detection_module_struct *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/ndpi/src/lib/ndpi_main.c:12254,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/src/lib/ndpi_main.c:12256,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:12263,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/src/lib/ndpi_main.c:12267,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/src/lib/ndpi_main.c:12268,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/src/lib/ndpi_main.c:12269,1
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/src/lib/ndpi_main.c:12270,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/src/lib/ndpi_main.c:12271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - proto_name_or_id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 12274
      start: 12243
    functionDepth: 4
    functionLinenumber: 12243
    functionLinenumberEnd: 12274
    functionName: __get_proto_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_get_proto_by_name
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_get_num_internal_protocols
    - ndpi_set_config
    - ndpi_exit_detection_module
    - strtol
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t __get_proto_id(const char *proto_name_or_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/ndpi/src/lib/ndpi_main.c:12288,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - flowrisk_name_or_id
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 12302
      start: 12278
    functionDepth: 0
    functionLinenumber: 12278
    functionLinenumberEnd: 12302
    functionName: __get_flowrisk_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strtol
    linkageType: ''
    returnType: ndpi_risk_enum
    signature: ndpi_risk_enum __get_flowrisk_id(const char *flowrisk_name_or_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12318,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12319,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12324,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 7
    argNames:
    - ndpi_str
    - _variable
    - value
    - min_value
    - max_value
    - proto
    - param
    argTypes:
    - struct ndpi_detection_module_struct*
    - void*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 12331
      start: 12306
    functionDepth: 0
    functionLinenumber: 12306
    functionLinenumberEnd: 12331
    functionName: _set_param_enable_disable
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: ndpi_cfg_error
    signature: "ndpi_cfg_error _set_param_enable_disable(struct ndpi_detection_module_struct
      *ndpi_str,\n                                                void *_variable,
      const char *value,\n                                                const char
      *min_value, const char *max_value,\n                                                const
      char *proto, const char *param)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_strtonum
      Src: /src/ndpi/src/lib/ndpi_main.c:12347,1
    - Dst: strtol
      Src: /src/ndpi/src/lib/ndpi_main.c:12355,1
    - Dst: strtol
      Src: /src/ndpi/src/lib/ndpi_main.c:12355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 7
    argNames:
    - ndpi_str
    - _variable
    - value
    - min_value
    - max_value
    - proto
    - param
    argTypes:
    - struct ndpi_detection_module_struct*
    - void*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 12361
      start: 12335
    functionDepth: 1
    functionLinenumber: 12335
    functionLinenumberEnd: 12361
    functionName: _set_param_int
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_strtonum
    - strtol
    linkageType: ''
    returnType: ndpi_cfg_error
    signature: "ndpi_cfg_error _set_param_int(struct ndpi_detection_module_struct
      *ndpi_str,\n                                     void *_variable, const char
      *value,\n                                     const char *min_value, const char
      *max_value,\n                                     const char *proto, const char
      *param)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - _variable
    - proto
    - buf
    - buf_len
    argTypes:
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12373
      start: 12365
    functionDepth: 0
    functionLinenumber: 12365
    functionLinenumberEnd: 12373
    functionName: _get_param_int
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *_get_param_int(void *_variable, const char *proto, char *buf,
      int buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - _variable
    - proto
    - buf
    - buf_len
    argTypes:
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12385
      start: 12377
    functionDepth: 0
    functionLinenumber: 12377
    functionLinenumberEnd: 12385
    functionName: _get_param_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *_get_param_string(void *_variable, const char *proto, char *buf,
      int buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/ndpi/src/lib/ndpi_main.c:12406,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_main.c:12408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - ndpi_str
    - _variable
    - value
    - min_value
    - max_value
    - proto
    - param
    argTypes:
    - struct ndpi_detection_module_struct*
    - void*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 12410
      start: 12389
    functionDepth: 0
    functionLinenumber: 12389
    functionLinenumberEnd: 12410
    functionName: _set_param_filename
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - access
    - strncpy
    linkageType: ''
    returnType: ndpi_cfg_error
    signature: "ndpi_cfg_error _set_param_filename(struct ndpi_detection_module_struct
      *ndpi_str,\n                                          void *_variable, const
      char *value,\n                                          const char *min_value,
      const char *max_value,\n                                          const char
      *proto, const char *param)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _set_param_filename
      Src: /src/ndpi/src/lib/ndpi_main.c:12421,1
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_main.c:12425,1
    - Dst: load_config_file_fd
      Src: /src/ndpi/src/lib/ndpi_main.c:12430,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_main.c:12432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 7
    argNames:
    - ndpi_str
    - _variable
    - value
    - min_value
    - max_value
    - proto
    - param
    argTypes:
    - struct ndpi_detection_module_struct*
    - void*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 12438
      start: 12414
    functionDepth: 2
    functionLinenumber: 12414
    functionLinenumberEnd: 12438
    functionName: _set_param_filename_config
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - load_config_file_fd
    - _set_param_filename
    - fclose
    - fopen
    linkageType: ''
    returnType: ndpi_cfg_error
    signature: "ndpi_cfg_error _set_param_filename_config(struct ndpi_detection_module_struct
      *ndpi_str,\n                                                 void *_variable,
      const char *value,\n                                                 const char
      *min_value, const char *max_value,\n                                                 const
      char *proto, const char *param)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __get_proto_id
      Src: /src/ndpi/src/lib/ndpi_main.c:12448,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12452,1
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_main.c:12452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - _variable
    - proto
    - buf
    - buf_len
    argTypes:
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12455
      start: 12442
    functionDepth: 5
    functionLinenumber: 12442
    functionLinenumberEnd: 12455
    functionName: _get_param_protocol_enable_disable
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - __get_proto_id
    - snprintf
    - ndpi_bitmask_is_set
    linkageType: ''
    returnType: char
    signature: "char *_get_param_protocol_enable_disable(void *_variable, const char
      *proto,\n\t\t\t\t\t\tchar *buf, int buf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12470,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12471,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12472,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12473,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12474,1
    - Dst: ndpi_bitmask_set_all
      Src: /src/ndpi/src/lib/ndpi_main.c:12475,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12478,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12479,1
    - Dst: ndpi_bitmask_reset
      Src: /src/ndpi/src/lib/ndpi_main.c:12480,1
    - Dst: __get_proto_id
      Src: /src/ndpi/src/lib/ndpi_main.c:12485,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12489,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12490,1
    - Dst: ndpi_bitmask_set
      Src: /src/ndpi/src/lib/ndpi_main.c:12491,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12494,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12495,1
    - Dst: ndpi_bitmask_clear
      Src: /src/ndpi/src/lib/ndpi_main.c:12496,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 7
    argNames:
    - ndpi_str
    - _variable
    - value
    - min_value
    - max_value
    - proto
    - param
    argTypes:
    - struct ndpi_detection_module_struct*
    - void*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 12500
      start: 12457
    functionDepth: 5
    functionLinenumber: 12457
    functionLinenumberEnd: 12500
    functionName: _set_param_protocol_enable_disable
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmask_reset
    - __get_proto_id
    - ndpi_bitmask_clear
    - ndpi_bitmask_set
    - strcmp
    - ndpi_bitmask_set_all
    linkageType: ''
    returnType: ndpi_cfg_error
    signature: "ndpi_cfg_error _set_param_protocol_enable_disable(struct ndpi_detection_module_struct
      *ndpi_str,\n                                                         void *_variable,
      const char *value,\n                                                         const
      char *min_value, const char *max_value,\n                                                         const
      char *proto, const char *param)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __get_flowrisk_id
      Src: /src/ndpi/src/lib/ndpi_main.c:12508,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12512,1
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_main.c:12512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - _variable
    - proto
    - buf
    - buf_len
    argTypes:
    - void*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12515
      start: 12502
    functionDepth: 1
    functionLinenumber: 12502
    functionLinenumberEnd: 12515
    functionName: _get_param_flowrisk_enable_disable
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - __get_flowrisk_id
    - snprintf
    - ndpi_bitmask_is_set
    linkageType: ''
    returnType: char
    signature: "char *_get_param_flowrisk_enable_disable(void *_variable, const char
      *proto,\n                                                char *buf, int buf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12531,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:12536,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12537,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:12537,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_main.c:12538,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_main.c:12538,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_main.c:12538,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_main.c:12540,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12542,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12543,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12544,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12545,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12546,1
    - Dst: ndpi_bitmask_set_all
      Src: /src/ndpi/src/lib/ndpi_main.c:12547,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12550,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12551,1
    - Dst: ndpi_bitmask_reset
      Src: /src/ndpi/src/lib/ndpi_main.c:12552,1
    - Dst: __get_flowrisk_id
      Src: /src/ndpi/src/lib/ndpi_main.c:12557,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12561,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12562,1
    - Dst: ndpi_bitmask_set
      Src: /src/ndpi/src/lib/ndpi_main.c:12563,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12566,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12567,1
    - Dst: ndpi_bitmask_clear
      Src: /src/ndpi/src/lib/ndpi_main.c:12568,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 7
    argNames:
    - ndpi_str
    - _variable
    - value
    - min_value
    - max_value
    - proto
    - _param
    argTypes:
    - struct ndpi_detection_module_struct*
    - void*
    - char*
    - char*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 12572
      start: 12517
    functionDepth: 1
    functionLinenumber: 12517
    functionLinenumberEnd: 12572
    functionName: _set_param_flowrisk_enable_disable
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_bitmask_reset
    - memcpy
    - ndpi_min
    - __get_flowrisk_id
    - strncpy
    - ndpi_bitmask_clear
    - strcmp
    - ndpi_bitmask_set_all
    - ndpi_bitmask_set
    - strlen
    linkageType: ''
    returnType: ndpi_cfg_error
    signature: "ndpi_cfg_error _set_param_flowrisk_enable_disable(struct ndpi_detection_module_struct
      *ndpi_str,\n                                                         void *_variable,
      const char *value,\n                                                         const
      char *min_value, const char *max_value,\n                                                         const
      char *proto, const char *_param)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ndpi_str
    - _variable
    - proto
    - param
    argTypes:
    - struct ndpi_detection_module_struct*
    - void*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 12589
      start: 12574
    functionDepth: 0
    functionLinenumber: 12574
    functionLinenumberEnd: 12589
    functionName: clbk_only_with_global_ctx
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clbk_only_with_global_ctx(struct ndpi_detection_module_struct
      *ndpi_str,\n                                     void *_variable, const char
      *proto,\n                                     const char *param)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/src/lib/ndpi_main.c:12785,1
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/src/lib/ndpi_main.c:12786,1
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/src/lib/ndpi_main.c:12787,1
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/src/lib/ndpi_main.c:12788,1
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/src/lib/ndpi_main.c:12789,1
    - Dst: fn_set
      Src: /src/ndpi/src/lib/ndpi_main.c:12793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 2
    argNames:
    - cfg
    - max_internal_proto
    argTypes:
    - struct ndpi_detection_module_config_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 12797
      start: 12780
    functionDepth: 1
    functionLinenumber: 12780
    functionLinenumberEnd: 12797
    functionName: set_default_config
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - ndpi_bitmask_alloc
    - fn_set
    linkageType: ''
    returnType: int
    signature: "int set_default_config(struct ndpi_detection_module_config_struct
      *cfg,\n                              u_int16_t max_internal_proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:12811,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12813,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12818,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12819,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12821,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12822,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12824,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12825,1
    - Dst: ndpi_str_endswith
      Src: /src/ndpi/src/lib/ndpi_main.c:12826,1
    - Dst: ndpi_str_endswith
      Src: /src/ndpi/src/lib/ndpi_main.c:12827,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12829,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12830,1
    - Dst: ndpi_str_endswith
      Src: /src/ndpi/src/lib/ndpi_main.c:12831,1
    - Dst: fn_set
      Src: /src/ndpi/src/lib/ndpi_main.c:12833,1
    - Dst: struct cfg_param*::fn_callback
      Src: /src/ndpi/src/lib/ndpi_main.c:12836,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 21
    argCount: 4
    argNames:
    - ndpi_str
    - proto
    - param
    - value
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 12847
      start: 12799
    functionDepth: 1
    functionLinenumber: 12799
    functionLinenumberEnd: 12847
    functionName: ndpi_set_config
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 3
    functionsReached:
    - strncmp
    - NDPI_LOG_DBG
    - struct cfg_param*::fn_callback
    - fn_set
    - strcmp
    - ndpi_str_endswith
    linkageType: ''
    returnType: ndpi_cfg_error
    signature: "ndpi_cfg_error ndpi_set_config(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t               const char *proto, const char *param, const char
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12855,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/src/lib/ndpi_main.c:12861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ndpi_str
    - proto
    - param
    - value
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - char*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12862
      start: 12849
    functionDepth: 2
    functionLinenumber: 12849
    functionLinenumberEnd: 12862
    functionName: ndpi_set_config_u64
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    - ndpi_set_config
    linkageType: ''
    returnType: ndpi_cfg_error
    signature: "ndpi_cfg_error ndpi_set_config_u64(struct ndpi_detection_module_struct
      *ndpi_str,\n                                   const char *proto, const char
      *param, uint64_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/ndpi_main.c:12872,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12876,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12877,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12879,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12880,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12882,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12883,1
    - Dst: fn_get
      Src: /src/ndpi/src/lib/ndpi_main.c:12885,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 10
    argCount: 5
    argNames:
    - ndpi_str
    - proto
    - param
    - buf
    - buf_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 12889
      start: 12864
    functionDepth: 0
    functionLinenumber: 12864
    functionLinenumberEnd: 12889
    functionName: ndpi_get_config
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - strcmp
    - fn_get
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: char
    signature: "char *ndpi_get_config(struct ndpi_detection_module_struct *ndpi_str,\n\t\t
      \     const char *proto, const char *param, char *buf, int buf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12898,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12905,1
    - Dst: _get_param_int
      Src: /src/ndpi/src/lib/ndpi_main.c:12908,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12911,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12912,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12915,1
    - Dst: _get_param_string
      Src: /src/ndpi/src/lib/ndpi_main.c:12918,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12920,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12924,1
    - Dst: _get_param_protocol_enable_disable
      Src: /src/ndpi/src/lib/ndpi_main.c:12927,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12929,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12933,1
    - Dst: _get_param_flowrisk_enable_disable
      Src: /src/ndpi/src/lib/ndpi_main.c:12936,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_main.c:12938,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - ndpi_str
    - fd
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    constantsTouched: []
    func_position:
      end: 12944
      start: 12891
    functionDepth: 6
    functionLinenumber: 12891
    functionLinenumberEnd: 12944
    functionName: ndpi_dump_config
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - fprintf
    - _get_param_flowrisk_enable_disable
    - _get_param_protocol_enable_disable
    - _get_param_int
    - _get_param_string
    linkageType: ''
    returnType: char
    signature: char *ndpi_dump_config(struct ndpi_detection_module_struct *ndpi_str,
      FILE *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/ndpi/src/lib/ndpi_main.c:12956,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/ndpi_main.c:12965,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/ndpi_main.c:12972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - haystack
    - haystack_len
    - needle
    - needle_len
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 12981
      start: 12946
    functionDepth: 0
    functionLinenumber: 12946
    functionLinenumberEnd: 12981
    functionName: ndpi_memmem
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 1
    functionsReached:
    - memcmp
    - memchr
    linkageType: ''
    returnType: void
    signature: void * ndpi_memmem(const void* haystack, size_t haystack_len, const
      void* needle, size_t needle_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/ndpi_main.c:12989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - dst
    - src
    - dst_len
    - src_len
    argTypes:
    - char*
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 12993
      start: 12983
    functionDepth: 0
    functionLinenumber: 12983
    functionLinenumberEnd: 12993
    functionName: ndpi_strlcpy
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: size_t
    signature: size_t ndpi_strlcpy(char *dst, const char* src, size_t dst_len, size_t
      src_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_main.c:13016,1
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_main.c:13016,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 13040
      start: 12995
    functionDepth: 0
    functionLinenumber: 12995
    functionLinenumberEnd: 13040
    functionName: ndpi_memcasecmp
    functionSourceFile: /src/ndpi/src/lib/ndpi_main.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int ndpi_memcasecmp(const void *s1, const void *s2, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_geoip.c:45,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_geoip.c:46,1
    - Dst: MMDB_open
      Src: /src/ndpi/src/lib/ndpi_geoip.c:52,1
    - Dst: MMDB_open
      Src: /src/ndpi/src/lib/ndpi_geoip.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ndpi_str
    - ip_city_data
    - ip_as_data
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: ndpi_load_geoip
    functionSourceFile: /src/ndpi/src/lib/ndpi_geoip.c
    functionUses: 1
    functionsReached:
    - MMDB_open
    - ndpi_malloc
    linkageType: ''
    returnType: int
    signature: "int ndpi_load_geoip(struct ndpi_detection_module_struct *ndpi_str,\n
      \                   const char *ip_city_data, const char *ip_as_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMDB_close
      Src: /src/ndpi/src/lib/ndpi_geoip.c:77,1
    - Dst: MMDB_close
      Src: /src/ndpi/src/lib/ndpi_geoip.c:79,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_geoip.c:81,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_geoip.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: ndpi_free_geoip
    functionSourceFile: /src/ndpi/src/lib/ndpi_geoip.c
    functionUses: 1
    functionsReached:
    - MMDB_close
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_geoip(struct ndpi_detection_module_struct *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMDB_lookup_string
      Src: /src/ndpi/src/lib/ndpi_geoip.c:99,1
    - Dst: MMDB_get_value
      Src: /src/ndpi/src/lib/ndpi_geoip.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - ndpi_str
    - ip
    - asn
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int32_t*
    constantsTouched: []
    func_position:
      end: 124
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 124
    functionName: ndpi_get_geoip_asn
    functionSourceFile: /src/ndpi/src/lib/ndpi_geoip.c
    functionUses: 1
    functionsReached:
    - MMDB_lookup_string
    - MMDB_get_value
    linkageType: ''
    returnType: int
    signature: int ndpi_get_geoip_asn(struct ndpi_detection_module_struct *ndpi_str,
      char *ip, u_int32_t *asn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMDB_lookup_string
      Src: /src/ndpi/src/lib/ndpi_geoip.c:135,1
    - Dst: MMDB_get_value
      Src: /src/ndpi/src/lib/ndpi_geoip.c:144,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_geoip.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - ndpi_str
    - ip
    - aso
    - aso_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - char*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 167
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 167
    functionName: ndpi_get_geoip_aso
    functionSourceFile: /src/ndpi/src/lib/ndpi_geoip.c
    functionUses: 1
    functionsReached:
    - MMDB_lookup_string
    - memcpy
    - MMDB_get_value
    linkageType: ''
    returnType: int
    signature: int ndpi_get_geoip_aso(struct ndpi_detection_module_struct *ndpi_str,
      char *ip, char *aso, u_int8_t aso_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMDB_lookup_string
      Src: /src/ndpi/src/lib/ndpi_geoip.c:184,1
    - Dst: MMDB_get_value
      Src: /src/ndpi/src/lib/ndpi_geoip.c:192,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_geoip.c:200,1
    - Dst: MMDB_get_value
      Src: /src/ndpi/src/lib/ndpi_geoip.c:207,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_geoip.c:215,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 6
    argNames:
    - ndpi_str
    - ip
    - country_code
    - country_code_len
    - continent
    - continent_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - char*
    - u_int8_t
    - char*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 233
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 233
    functionName: ndpi_get_geoip_country_continent
    functionSourceFile: /src/ndpi/src/lib/ndpi_geoip.c
    functionUses: 0
    functionsReached:
    - MMDB_lookup_string
    - memcpy
    - MMDB_get_value
    linkageType: ''
    returnType: int
    signature: "int ndpi_get_geoip_country_continent(struct ndpi_detection_module_struct
      *ndpi_str, char *ip,\n                                     char *country_code,
      u_int8_t country_code_len,\n                                     char *continent,
      u_int8_t continent_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MMDB_lookup_string
      Src: /src/ndpi/src/lib/ndpi_geoip.c:249,1
    - Dst: MMDB_get_value
      Src: /src/ndpi/src/lib/ndpi_geoip.c:257,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_geoip.c:265,1
    - Dst: MMDB_get_value
      Src: /src/ndpi/src/lib/ndpi_geoip.c:272,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_geoip.c:280,1
    - Dst: MMDB_get_value
      Src: /src/ndpi/src/lib/ndpi_geoip.c:287,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_geoip.c:295,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 8
    argNames:
    - ndpi_str
    - ip
    - country_code
    - country_code_len
    - continent
    - continent_len
    - city
    - city_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - char*
    - u_int8_t
    - char*
    - u_int8_t
    - char*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 315
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 315
    functionName: ndpi_get_geoip_country_continent_city
    functionSourceFile: /src/ndpi/src/lib/ndpi_geoip.c
    functionUses: 1
    functionsReached:
    - MMDB_lookup_string
    - memcpy
    - MMDB_get_value
    linkageType: ''
    returnType: int
    signature: "int ndpi_get_geoip_country_continent_city(struct ndpi_detection_module_struct
      *ndpi_str, char *ip,\n                                          char *country_code,
      u_int8_t country_code_len,\n                                          char *continent,
      u_int8_t continent_len,\n                                          char *city,
      u_int8_t city_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (*__ndpi_malloc)(size_t size)
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: set_ndpi_malloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_ndpi_malloc(void *(*__ndpi_malloc)(size_t size))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: set_ndpi_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_ndpi_free(void (*__ndpi_free)(void *ptr))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/src/lib/ndpi_memory.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: ndpi_get_tot_allocated_memory
    functionSourceFile: /src/ndpi/src/lib/ndpi_memory.c
    functionUses: 2
    functionsReached:
    - __sync_fetch_and_add
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_get_tot_allocated_memory()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/src/lib/ndpi_memory.c:56,1
    - Dst: _ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_memory.c:57,1
    - Dst: malloc
      Src: /src/ndpi/src/lib/ndpi_memory.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: ndpi_malloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_memory.c
    functionUses: 16
    functionsReached:
    - _ndpi_malloc
    - malloc
    - __sync_fetch_and_add
    linkageType: ''
    returnType: void
    signature: void *ndpi_malloc(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_memory.c:67,1
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/src/lib/ndpi_memory.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - count
    - size
    argTypes:
    - unsigned long
    - size_t
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: ndpi_calloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_memory.c
    functionUses: 7
    functionsReached:
    - memset
    - __sync_fetch_and_add
    linkageType: ''
    returnType: void
    signature: void *ndpi_calloc(unsigned long count, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ndpi_free
      Src: /src/ndpi/src/lib/ndpi_memory.c:79,1
    - Dst: free
      Src: /src/ndpi/src/lib/ndpi_memory.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: ndpi_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_memory.c
    functionUses: 27
    functionsReached:
    - _ndpi_free
    - free
    linkageType: ''
    returnType: void
    signature: void ndpi_free(void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_memory.c:95,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_memory.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - old_size
    - new_size
    argTypes:
    - void*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: ndpi_realloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_memory.c
    functionUses: 6
    functionsReached:
    - memcpy
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void *ndpi_realloc(void *ptr, size_t old_size, size_t new_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_memory.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: ndpi_strdup
    functionSourceFile: /src/ndpi/src/lib/ndpi_memory.c
    functionUses: 7
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *ndpi_strdup(const char *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MurmurHash
      Src: /src/ndpi/src/lib/ndpi_hash.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - str_len
    argTypes:
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: ndpi_murmur_hash
    functionSourceFile: /src/ndpi/src/lib/ndpi_hash.c
    functionUses: 0
    functionsReached:
    - MurmurHash
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_murmur_hash(const char *str, u_int str_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - str_len
    argTypes:
    - unsigned char*
    - u_int
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: ndpi_quick_hash
    functionSourceFile: /src/ndpi/src/lib/ndpi_hash.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_quick_hash(const unsigned char *str, u_int str_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - str_len
    argTypes:
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: ndpi_quick_hash64
    functionSourceFile: /src/ndpi/src/lib/ndpi_hash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_quick_hash64(const char *str, u_int str_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: ndpi_hash_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_hash_string(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: ndpi_rev_hash_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_rev_hash_string(const char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: ndpi_hash_string_len
    functionSourceFile: /src/ndpi/src/lib/ndpi_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_hash_string_len(const char *str, u_int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ROR64
      Src: /src/ndpi/src/lib/ndpi_hash.c:145,1
    - Dst: ROR64
      Src: /src/ndpi/src/lib/ndpi_hash.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - in_16_bytes_long
    argTypes:
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 151
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 151
    functionName: ndpi_quick_16_byte_hash
    functionSourceFile: /src/ndpi/src/lib/ndpi_hash.c
    functionUses: 0
    functionsReached:
    - ROR64
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_quick_16_byte_hash(const u_int8_t *in_16_bytes_long)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_timer_clear
      Src: /src/ndpi/src/lib/ndpi_classify.c:278,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/src/lib/ndpi_classify.c:285,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/src/lib/ndpi_classify.c:289,1
    - Dst: ndpi_timer_lt
      Src: /src/ndpi/src/lib/ndpi_classify.c:291,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/src/lib/ndpi_classify.c:294,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/src/lib/ndpi_classify.c:298,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/src/lib/ndpi_classify.c:306,1
    - Dst: ndpi_timeval_to_milliseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:307,1
    - Dst: ndpi_timeval_to_microseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:309,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/src/lib/ndpi_classify.c:315,1
    - Dst: ndpi_timeval_to_milliseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:316,1
    - Dst: ndpi_timeval_to_microseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:318,1
    - Dst: ndpi_timer_lt
      Src: /src/ndpi/src/lib/ndpi_classify.c:322,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/src/lib/ndpi_classify.c:325,1
    - Dst: ndpi_timeval_to_milliseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:326,1
    - Dst: ndpi_timeval_to_microseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:328,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/src/lib/ndpi_classify.c:334,1
    - Dst: ndpi_timeval_to_milliseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:335,1
    - Dst: ndpi_timeval_to_microseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:337,1
    - Dst: ndpi_timeval_to_milliseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:343,1
    - Dst: ndpi_timeval_to_microseconds
      Src: /src/ndpi/src/lib/ndpi_classify.c:345,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 70
    argCount: 10
    argNames:
    - pkt_len
    - pkt_time
    - pkt_len_twin
    - pkt_time_twin
    - start_time
    - start_time_twin
    - s_idx
    - r_idx
    - merged_lens
    - merged_times
    argTypes:
    - uint16_t*
    - pkt_timeval*
    - uint16_t*
    - pkt_timeval*
    - pkt_timeval
    - pkt_timeval
    - uint16_t
    - uint16_t
    - uint16_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 346
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 346
    functionName: ndpi_merge_splt_arrays
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 0
    functionsReached:
    - ndpi_timer_sub
    - ndpi_timer_lt
    - ndpi_timeval_to_milliseconds
    - ndpi_timeval_to_microseconds
    - ndpi_timer_clear
    linkageType: ''
    returnType: void
    signature: "void ndpi_merge_splt_arrays (const uint16_t *pkt_len, const pkt_timeval
      *pkt_time,\n                        const uint16_t *pkt_len_twin, const pkt_timeval
      *pkt_time_twin,\n                        pkt_timeval start_time, pkt_timeval
      start_time_twin,\n                        uint16_t s_idx, uint16_t r_idx,\n
      \                       uint16_t *merged_lens, uint16_t *merged_times)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/ndpi/src/lib/ndpi_classify.c:366,1
    - Dst: min
      Src: /src/ndpi/src/lib/ndpi_classify.c:370,1
    - Dst: min
      Src: /src/ndpi/src/lib/ndpi_classify.c:371,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - lens
    - length_mc
    - num_packets
    argTypes:
    - uint16_t*
    - float*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 388
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 388
    functionName: ndpi_get_mc_rep_lens
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: void
    signature: void ndpi_get_mc_rep_lens (uint16_t *lens, float *length_mc, uint16_t
      num_packets)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/ndpi/src/lib/ndpi_classify.c:407,1
    - Dst: min
      Src: /src/ndpi/src/lib/ndpi_classify.c:411,1
    - Dst: min
      Src: /src/ndpi/src/lib/ndpi_classify.c:412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - times
    - time_mc
    - num_packets
    argTypes:
    - uint16_t*
    - float*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: ndpi_get_mc_rep_times
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: void
    signature: void ndpi_get_mc_rep_times (uint16_t *times, float *time_mc, uint16_t
      num_packets)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_classify.c:481,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_classify.c:482,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_classify.c:485,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_classify.c:486,1
    - Dst: ndpi_merge_splt_arrays
      Src: /src/ndpi/src/lib/ndpi_classify.c:500,1
    - Dst: ndpi_get_mc_rep_lens
      Src: /src/ndpi/src/lib/ndpi_classify.c:509,1
    - Dst: ndpi_get_mc_rep_times
      Src: /src/ndpi/src/lib/ndpi_classify.c:512,1
    - Dst: min
      Src: /src/ndpi/src/lib/ndpi_classify.c:542,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_classify.c:544,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_classify.c:545,1
    - Dst: exp
      Src: /src/ndpi/src/lib/ndpi_classify.c:547,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 18
    argNames:
    - pkt_len
    - pkt_time
    - pkt_len_twin
    - pkt_time_twin
    - start_time
    - start_time_twin
    - max_num_pkt_len
    - sp
    - dp
    - op
    - ip
    - np_o
    - np_i
    - ob
    - ib
    - use_bd
    - bd
    - bd_t
    argTypes:
    - unsigned short*
    - pkt_timeval*
    - unsigned short*
    - pkt_timeval*
    - pkt_timeval
    - pkt_timeval
    - uint32_t
    - uint16_t
    - uint16_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint16_t
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 548
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 548
    functionName: ndpi_classify
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 0
    functionsReached:
    - ndpi_get_mc_rep_times
    - ndpi_free
    - ndpi_get_mc_rep_lens
    - min
    - ndpi_calloc
    - exp
    - ndpi_merge_splt_arrays
    linkageType: ''
    returnType: float
    signature: "float ndpi_classify (const unsigned short *pkt_len, const pkt_timeval
      *pkt_time,\n               const unsigned short *pkt_len_twin, const pkt_timeval
      *pkt_time_twin,\n               pkt_timeval start_time, pkt_timeval start_time_twin,
      uint32_t max_num_pkt_len,\n               uint16_t sp, uint16_t dp, uint32_t
      op, uint32_t ip, uint32_t np_o, uint32_t np_i,\n               uint32_t ob,
      uint32_t ib, uint16_t use_bd, const uint32_t *bd, const uint32_t *bd_t)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_classify.c:569,1
    - Dst: fscanf
      Src: /src/ndpi/src/lib/ndpi_classify.c:571,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_classify.c:578,1
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_classify.c:584,1
    - Dst: fscanf
      Src: /src/ndpi/src/lib/ndpi_classify.c:586,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_classify.c:593,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_classify.c:599,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - param_type
    - param_file
    argTypes:
    - classifier_type_codes_t
    - char*
    constantsTouched: []
    func_position:
      end: 603
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 603
    functionName: ndpi_update_params
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 0
    functionsReached:
    - fscanf
    - printf
    - fclose
    - fopen
    linkageType: ''
    returnType: void
    signature: void ndpi_update_params (classifier_type_codes_t param_type, const
      char *param_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - pkt_timeval*
    - pkt_timeval*
    constantsTouched: []
    func_position:
      end: 632
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 632
    functionName: ndpi_timer_eq
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ndpi_timer_eq(const pkt_timeval *a,\n              const
      pkt_timeval *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - pkt_timeval*
    - pkt_timeval*
    constantsTouched: []
    func_position:
      end: 642
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 642
    functionName: ndpi_timer_lt
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ndpi_timer_lt(const pkt_timeval *a,\n              const
      pkt_timeval *b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - a
    - b
    - result
    argTypes:
    - pkt_timeval*
    - pkt_timeval*
    - pkt_timeval*
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: ndpi_timer_sub
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ndpi_timer_sub(const pkt_timeval *a,\n               const pkt_timeval
      *b,\n               pkt_timeval *result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - pkt_timeval*
    constantsTouched: []
    func_position:
      end: 675
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 675
    functionName: ndpi_timer_clear
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_timer_clear(pkt_timeval *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - pkt_timeval
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: ndpi_timeval_to_milliseconds
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_timeval_to_milliseconds(pkt_timeval ts)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - pkt_timeval
    constantsTouched: []
    func_position:
      end: 705
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 705
    functionName: ndpi_timeval_to_microseconds
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_timeval_to_microseconds(pkt_timeval ts)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/ndpi/src/lib/ndpi_classify.c:717,1
    - Dst: localtime
      Src: /src/ndpi/src/lib/ndpi_classify.c:721,1
    - Dst: localtime_r
      Src: /src/ndpi/src/lib/ndpi_classify.c:724,1
    - Dst: strftime
      Src: /src/ndpi/src/lib/ndpi_classify.c:726,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_classify.c:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - log_ts
    - log_ts_len
    argTypes:
    - char*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 728
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 728
    functionName: ndpi_log_timestamp
    functionSourceFile: /src/ndpi/src/lib/ndpi_classify.c
    functionUses: 0
    functionsReached:
    - strftime
    - localtime
    - gettimeofday
    - ndpi_snprintf
    - localtime_r
    linkageType: ''
    returnType: void
    signature: void ndpi_log_timestamp(char *log_ts, uint32_t log_ts_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:41,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ret
    - _max_series_len
    argTypes:
    - struct ndpi_analyze_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: ndpi_init_data_analysis
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - memset
    linkageType: ''
    returnType: void
    signature: void ndpi_init_data_analysis(struct ndpi_analyze_struct *ret, u_int16_t
      _max_series_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:56,1
    - Dst: ndpi_init_data_analysis
      Src: /src/ndpi/src/lib/ndpi_analyze.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - _max_series_len
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: ndpi_alloc_data_analysis
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_init_data_analysis
    - ndpi_malloc
    linkageType: ''
    returnType: struct ndpi_analyze_struct
    signature: struct ndpi_analyze_struct * ndpi_alloc_data_analysis(u_int16_t _max_series_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/src/lib/ndpi_analyze.c:68,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/src/lib/ndpi_analyze.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - values
    - num_values
    argTypes:
    - u_int32_t*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: ndpi_alloc_data_analysis_from_series
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_data_add_value
    - ndpi_alloc_data_analysis
    linkageType: ''
    returnType: struct ndpi_analyze_struct
    signature: struct ndpi_analyze_struct * ndpi_alloc_data_analysis_from_series(const
      u_int32_t *values, u_int16_t num_values)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:81,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - d
    - free_pointer
    argTypes:
    - struct ndpi_analyze_struct*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: ndpi_free_data_analysis
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_data_analysis(struct ndpi_analyze_struct *d, u_int8_t
      free_pointer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:97,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: ndpi_reset_data_analysis
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ndpi_reset_data_analysis(struct ndpi_analyze_struct *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_data_last
      Src: /src/ndpi/src/lib/ndpi_analyze.c:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - struct ndpi_analyze_struct*
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 145
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 145
    functionName: ndpi_data_add_value
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 1
    functionsReached:
    - ndpi_data_last
    linkageType: ''
    returnType: void
    signature: void ndpi_data_add_value(struct ndpi_analyze_struct *s, const u_int64_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: ndpi_data_average
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float ndpi_data_average(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: ndpi_data_last
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_data_last(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: ndpi_data_min
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_data_min(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    functionName: ndpi_data_max
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_data_max(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 183
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: ndpi_data_variance
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float ndpi_data_variance(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/ndpi/src/lib/ndpi_analyze.c:195,1
    - Dst: ndpi_data_variance
      Src: /src/ndpi/src/lib/ndpi_analyze.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: ndpi_data_stddev
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_data_variance
    - sqrt
    linkageType: ''
    returnType: float
    signature: float ndpi_data_stddev(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_data_average
      Src: /src/ndpi/src/lib/ndpi_analyze.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: ndpi_data_mean
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_data_average
    linkageType: ''
    returnType: float
    signature: float ndpi_data_mean(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: ndpi_data_jitter
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float ndpi_data_jitter(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_analyze.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 234
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 234
    functionName: ndpi_data_window_average
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_min
    linkageType: ''
    returnType: float
    signature: float ndpi_data_window_average(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_analyze.c:242,1
    - Dst: pow
      Src: /src/ndpi/src/lib/ndpi_analyze.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 253
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 253
    functionName: ndpi_data_window_variance
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - pow
    - ndpi_min
    linkageType: ''
    returnType: float
    signature: float ndpi_data_window_variance(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/ndpi/src/lib/ndpi_analyze.c:259,1
    - Dst: ndpi_data_window_variance
      Src: /src/ndpi/src/lib/ndpi_analyze.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 260
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 260
    functionName: ndpi_data_window_stddev
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_data_window_variance
    - sqrt
    linkageType: ''
    returnType: float
    signature: float ndpi_data_window_stddev(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fpclassify
      Src: /src/ndpi/src/lib/ndpi_analyze.c:275,1
    - Dst: logf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:282,1
    - Dst: logf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 288
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 288
    functionName: ndpi_data_entropy
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - fpclassify
    - logf
    linkageType: ''
    returnType: float
    signature: float ndpi_data_entropy(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_analyze.c:294,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:297,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_analyze_struct*
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: ndpi_data_print_window_values
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_min
    linkageType: ''
    returnType: void
    signature: void ndpi_data_print_window_values(struct ndpi_analyze_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sent
    - rcvd
    argTypes:
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: ndpi_data_ratio
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float ndpi_data_ratio(u_int32_t sent, u_int32_t rcvd)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ratio
    argTypes:
    - float
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: ndpi_data_ratio2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_data_ratio2str(float ratio)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hll_init
      Src: /src/ndpi/src/lib/ndpi_analyze.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hll
    - bits
    argTypes:
    - struct ndpi_hll*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: ndpi_hll_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - hll_init
    linkageType: ''
    returnType: int
    signature: int ndpi_hll_init(struct ndpi_hll *hll, u_int8_t bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hll_destroy
      Src: /src/ndpi/src/lib/ndpi_analyze.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hll
    argTypes:
    - struct ndpi_hll*
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: ndpi_hll_destroy
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - hll_destroy
    linkageType: ''
    returnType: void
    signature: void ndpi_hll_destroy(struct ndpi_hll *hll)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hll_reset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hll
    argTypes:
    - struct ndpi_hll*
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: ndpi_hll_reset
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - hll_reset
    linkageType: ''
    returnType: void
    signature: void ndpi_hll_reset(struct ndpi_hll *hll)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hll_add
      Src: /src/ndpi/src/lib/ndpi_analyze.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hll
    - data
    - data_len
    argTypes:
    - struct ndpi_hll*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: ndpi_hll_add
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - hll_add
    linkageType: ''
    returnType: int
    signature: int ndpi_hll_add(struct ndpi_hll *hll, const char *data, size_t data_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hll_add
      Src: /src/ndpi/src/lib/ndpi_analyze.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hll
    - value
    argTypes:
    - struct ndpi_hll*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: ndpi_hll_add_number
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - hll_add
    linkageType: ''
    returnType: int
    signature: int ndpi_hll_add_number(struct ndpi_hll *hll, u_int32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hll_count
      Src: /src/ndpi/src/lib/ndpi_analyze.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hll
    argTypes:
    - struct ndpi_hll*
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: ndpi_hll_count
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - hll_count
    linkageType: ''
    returnType: double
    signature: double ndpi_hll_count(struct ndpi_hll *hll)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:366,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:371,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:376,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:381,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - b
    - f
    - num_bins
    argTypes:
    - struct ndpi_bin*
    - enum ndpi_bin_family
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 387
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 387
    functionName: ndpi_init_bin
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    linkageType: ''
    returnType: int
    signature: int ndpi_init_bin(struct ndpi_bin *b, enum ndpi_bin_family f, u_int16_t
      num_bins)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:397,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:400,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:403,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ndpi_bin*
    constantsTouched: []
    func_position:
      end: 409
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 409
    functionName: ndpi_free_bin
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_bin(struct ndpi_bin *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:418,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:425,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:426,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_analyze.c:429,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:433,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:434,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_analyze.c:437,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:441,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:442,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_analyze.c:445,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:449,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:450,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_analyze.c:453,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ndpi_bin*
    constantsTouched: []
    func_position:
      end: 458
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 458
    functionName: ndpi_clone_bin
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - memcpy
    - ndpi_malloc
    - ndpi_free
    linkageType: ''
    returnType: struct ndpi_bin
    signature: struct ndpi_bin * ndpi_clone_bin(struct ndpi_bin *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - b
    - slot_id
    - val
    argTypes:
    - struct ndpi_bin*
    - u_int16_t
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 482
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 482
    functionName: ndpi_set_bin
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_set_bin(struct ndpi_bin *b, u_int16_t slot_id, u_int64_t
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - b
    - slot_id
    - val
    argTypes:
    - struct ndpi_bin*
    - u_int16_t
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 508
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 508
    functionName: ndpi_inc_bin
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_inc_bin(struct ndpi_bin *b, u_int16_t slot_id, u_int64_t
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - b
    - slot_id
    argTypes:
    - struct ndpi_bin*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 530
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 530
    functionName: ndpi_get_bin_value
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_get_bin_value(struct ndpi_bin *b, u_int16_t slot_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:542,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:545,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:548,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:551,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ndpi_bin*
    constantsTouched: []
    func_position:
      end: 554
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 554
    functionName: ndpi_reset_bin
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ndpi_reset_bin(struct ndpi_bin *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ndpi_bin*
    constantsTouched: []
    func_position:
      end: 603
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 603
    functionName: ndpi_normalize_bin
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_normalize_bin(struct ndpi_bin *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_normalize_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:614,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 37
    argCount: 4
    argNames:
    - b
    - normalize_first
    - out_buf
    - out_buf_len
    argTypes:
    - struct ndpi_bin*
    - u_int8_t
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 655
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 655
    functionName: ndpi_print_bin
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_normalize_bin
    linkageType: ''
    returnType: char
    signature: char * ndpi_print_bin(struct ndpi_bin *b, u_int8_t normalize_first,
      char *out_buf, u_int out_buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_normalize_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:694,1
    - Dst: ndpi_normalize_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:694,1
    - Dst: ndpi_get_bin_value
      Src: /src/ndpi/src/lib/ndpi_analyze.c:701,1
    - Dst: ndpi_get_bin_value
      Src: /src/ndpi/src/lib/ndpi_analyze.c:702,1
    - Dst: sqrt
      Src: /src/ndpi/src/lib/ndpi_analyze.c:710,1
    - Dst: ndpi_get_bin_value
      Src: /src/ndpi/src/lib/ndpi_analyze.c:717,1
    - Dst: ndpi_get_bin_value
      Src: /src/ndpi/src/lib/ndpi_analyze.c:718,1
    - Dst: pow
      Src: /src/ndpi/src/lib/ndpi_analyze.c:721,1
    - Dst: sqrt
      Src: /src/ndpi/src/lib/ndpi_analyze.c:730,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - b1
    - b2
    - normalize_first
    - similarity_max_threshold
    argTypes:
    - struct ndpi_bin*
    - struct ndpi_bin*
    - u_int8_t
    - float
    constantsTouched: []
    func_position:
      end: 733
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 733
    functionName: ndpi_bin_similarity
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - pow
    - ndpi_normalize_bin
    - sqrt
    - ndpi_get_bin_value
    linkageType: ''
    returnType: float
    signature: "float ndpi_bin_similarity(struct ndpi_bin *b1, struct ndpi_bin *b2,\n\t\t\t
      \ u_int8_t normalize_first, float similarity_max_threshold)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/ndpi/src/lib/ndpi_analyze.c:759,1
    - Dst: time
      Src: /src/ndpi/src/lib/ndpi_analyze.c:759,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:768,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:771,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:777,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:778,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:782,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:787,1
    - Dst: rand
      Src: /src/ndpi/src/lib/ndpi_analyze.c:791,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:796,1
    - Dst: ndpi_print_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:798,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:810,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:813,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:816,1
    - Dst: ndpi_reset_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:820,1
    - Dst: ndpi_inc_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:824,1
    - Dst: ndpi_get_bin_value
      Src: /src/ndpi/src/lib/ndpi_analyze.c:824,1
    - Dst: ndpi_normalize_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:829,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:832,1
    - Dst: ndpi_print_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:833,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:846,1
    - Dst: ndpi_bin_similarity
      Src: /src/ndpi/src/lib/ndpi_analyze.c:861,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:867,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:893,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:910,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:920,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:939,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/src/lib/ndpi_analyze.c:952,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:954,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:957,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 109
    argCount: 5
    argNames:
    - bins
    - num_bins
    - num_clusters
    - cluster_ids
    - centroids
    argTypes:
    - struct ndpi_bin*
    - u_int16_t
    - u_int8_t
    - u_int16_t*
    - struct ndpi_bin*
    constantsTouched: []
    func_position:
      end: 960
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 960
    functionName: ndpi_cluster_bins
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_bin_similarity
    - memset
    - ndpi_reset_bin
    - printf
    - ndpi_get_bin_value
    - ndpi_free
    - ndpi_malloc
    - rand
    - ndpi_calloc
    - time
    - ndpi_inc_bin
    - ndpi_free_bin
    - ndpi_print_bin
    - ndpi_init_bin
    - ndpi_normalize_bin
    - srand
    linkageType: ''
    returnType: int
    signature: "int ndpi_cluster_bins(struct ndpi_bin *bins, u_int16_t num_bins,\n\t\t
      \     u_int8_t num_clusters, u_int16_t *cluster_ids,\n\t\t      struct ndpi_bin
      *centroids)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:976,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:979,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:980,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:986,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:987,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - s
    - num_learning_values
    argTypes:
    - struct ndpi_rsi_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 990
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 990
    functionName: ndpi_alloc_rsi
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - memset
    - ndpi_free
    linkageType: ''
    returnType: int
    signature: int ndpi_alloc_rsi(struct ndpi_rsi_struct *s, u_int16_t num_learning_values)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:995,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_rsi_struct*
    constantsTouched: []
    func_position:
      end: 996
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 996
    functionName: ndpi_free_rsi
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_rsi(struct ndpi_rsi_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1022,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1029,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1034,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - struct ndpi_rsi_struct*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 1052
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1052
    functionName: ndpi_rsi_add_value
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: float
    signature: float ndpi_rsi_add_value(struct ndpi_rsi_struct *s, const u_int32_t
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1065
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1065
    functionName: ndpi_rational_approximation
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ndpi_rational_approximation(double t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_rational_approximation
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1073,1
    - Dst: sqrt
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1073,1
    - Dst: log
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1073,1
    - Dst: ndpi_rational_approximation
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1076,1
    - Dst: sqrt
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1076,1
    - Dst: log
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - double
    constantsTouched: []
    func_position:
      end: 1078
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1078
    functionName: ndpi_normal_cdf_inverse
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - log
    - ndpi_rational_approximation
    - sqrt
    linkageType: ''
    returnType: double
    signature: double ndpi_normal_cdf_inverse(double p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - num
    argTypes:
    - u_int64_t*
    - u_int
    constantsTouched: []
    func_position:
      end: 1088
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1088
    functionName: ndpi_avg_inline
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double ndpi_avg_inline(u_int64_t *v, u_int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1118,1
    - Dst: ndpi_normal_cdf_inverse
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1130,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1132,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1135,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - hw
    - num_periods
    - additive_seeasonal
    - alpha
    - beta
    - gamma
    - significance
    argTypes:
    - struct ndpi_hw_struct*
    - u_int16_t
    - u_int8_t
    - double
    - double
    - double
    - float
    constantsTouched: []
    func_position:
      end: 1142
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1142
    functionName: ndpi_hw_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - memset
    - ndpi_normal_cdf_inverse
    - ndpi_free
    linkageType: ''
    returnType: int
    signature: "int ndpi_hw_init(struct ndpi_hw_struct *hw,\n\t\t u_int16_t num_periods,
      u_int8_t additive_seeasonal,\n\t\t double alpha, double beta, double gamma,
      float significance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1148,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - hw
    argTypes:
    - struct ndpi_hw_struct*
    constantsTouched: []
    func_position:
      end: 1150
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1150
    functionName: ndpi_hw_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_hw_free(struct ndpi_hw_struct *hw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1199,1
    - Dst: sqrt
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1227,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 4
    argNames:
    - hw
    - _value
    - forecast
    - confidence_band
    argTypes:
    - struct ndpi_hw_struct*
    - u_int64_t
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1246
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1246
    functionName: ndpi_hw_add_value
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - printf
    - sqrt
    - ndpi_free
    linkageType: ''
    returnType: int
    signature: int ndpi_hw_add_value(struct ndpi_hw_struct *hw, const u_int64_t _value,
      double *forecast,  double *confidence_band)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1256,1
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - hw
    argTypes:
    - struct ndpi_hw_struct*
    constantsTouched: []
    func_position:
      end: 1259
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1259
    functionName: ndpi_hw_reset
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ndpi_hw_reset(struct ndpi_hw_struct *hw)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1274,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - num_learning_values
    argTypes:
    - struct ndpi_jitter_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1286
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1286
    functionName: ndpi_jitter_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - memset
    linkageType: ''
    returnType: int
    signature: int ndpi_jitter_init(struct ndpi_jitter_struct *s, u_int16_t num_learning_values)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ndpi_jitter_struct*
    constantsTouched: []
    func_position:
      end: 1292
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1292
    functionName: ndpi_jitter_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_jitter_free(struct ndpi_jitter_struct *s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - value
    argTypes:
    - struct ndpi_jitter_struct*
    - float
    constantsTouched: []
    func_position:
      end: 1323
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1323
    functionName: ndpi_jitter_add_value
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: float
    signature: float ndpi_jitter_add_value(struct ndpi_jitter_struct *s, const float
      value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1337,1
    - Dst: ndpi_normal_cdf_inverse
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ses
    - alpha
    - significance
    argTypes:
    - struct ndpi_ses_struct*
    - double
    - float
    constantsTouched: []
    func_position:
      end: 1345
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1345
    functionName: ndpi_ses_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 1
    functionsReached:
    - memset
    - ndpi_normal_cdf_inverse
    linkageType: ''
    returnType: int
    signature: int ndpi_ses_init(struct ndpi_ses_struct *ses, double alpha, float
      significance)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - ses
    - _value
    - forecast
    - confidence_band
    argTypes:
    - struct ndpi_ses_struct*
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1406
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1406
    functionName: ndpi_ses_add_value
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int ndpi_ses_add_value(struct ndpi_ses_struct *ses, const double _value,
      double *forecast, double *confidence_band)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ses
    argTypes:
    - struct ndpi_ses_struct*
    constantsTouched: []
    func_position:
      end: 1414
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1414
    functionName: ndpi_ses_reset
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_ses_reset(struct ndpi_ses_struct *ses)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_ses_init
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1436,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1439,1
    - Dst: ndpi_ses_add_value
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1448,1
    - Dst: fabs
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1449,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1452,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1467,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - values
    - num_values
    - ret_alpha
    argTypes:
    - double*
    - u_int32_t
    - float*
    constantsTouched: []
    func_position:
      end: 1477
      start: 1421
    functionDepth: 3
    functionLinenumber: 1421
    functionLinenumberEnd: 1477
    functionName: ndpi_ses_fitting
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_ses_init
    - printf
    - ndpi_ses_add_value
    - fabs
    linkageType: ''
    returnType: void
    signature: void ndpi_ses_fitting(double *values, u_int32_t num_values, float *ret_alpha)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1490,1
    - Dst: ndpi_normal_cdf_inverse
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - des
    - alpha
    - beta
    - significance
    argTypes:
    - struct ndpi_des_struct*
    - double
    - double
    - float
    constantsTouched: []
    func_position:
      end: 1499
      start: 1486
    functionDepth: 2
    functionLinenumber: 1486
    functionLinenumberEnd: 1499
    functionName: ndpi_des_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - memset
    - ndpi_normal_cdf_inverse
    linkageType: ''
    returnType: int
    signature: int ndpi_des_init(struct ndpi_des_struct *des, double alpha, double
      beta, float significance)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - des
    argTypes:
    - struct ndpi_des_struct*
    constantsTouched: []
    func_position:
      end: 1507
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1507
    functionName: ndpi_des_reset
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_des_reset(struct ndpi_des_struct *des)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - des
    - _value
    - forecast
    - confidence_band
    argTypes:
    - struct ndpi_des_struct*
    - double
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 1563
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1563
    functionName: ndpi_des_add_value
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int ndpi_des_add_value(struct ndpi_des_struct *des, const double _value,
      double *forecast, double *confidence_band)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_des_init
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1587,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1590,1
    - Dst: ndpi_des_add_value
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1599,1
    - Dst: fabs
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1600,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1603,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1618,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - values
    - num_values
    - ret_alpha
    - ret_beta
    argTypes:
    - double*
    - u_int32_t
    - float*
    - float*
    constantsTouched: []
    func_position:
      end: 1629
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1629
    functionName: ndpi_des_fitting
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_des_add_value
    - printf
    - ndpi_des_init
    - fabs
    linkageType: ''
    returnType: void
    signature: void ndpi_des_fitting(double *values, u_int32_t num_values, float *ret_alpha,
      float *ret_beta)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_data_analysis
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1642,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1646,1
    - Dst: ndpi_data_mean
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1648,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1649,1
    - Dst: fpclassify
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1651,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1652,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1665,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - values
    - outliers
    - num_values
    argTypes:
    - u_int32_t*
    - bool*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 1668
      start: 1634
    functionDepth: 2
    functionLinenumber: 1634
    functionLinenumberEnd: 1668
    functionName: ndpi_find_outliers
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_data_stddev
    - ndpi_data_mean
    - ndpi_init_data_analysis
    - fpclassify
    - ndpi_free_data_analysis
    - ndpi_data_add_value
    linkageType: ''
    returnType: u_int
    signature: u_int ndpi_find_outliers(u_int32_t *values, bool *outliers, u_int32_t
      num_values)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_alloc_data_analysis_from_series
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1676,1
    - Dst: ndpi_data_mean
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1681,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1682,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - past_values
    - num_past_values
    - value_to_check
    - threshold
    - lower
    - upper
    argTypes:
    - u_int32_t*
    - u_int32_t
    - u_int32_t
    - float
    - float*
    - float*
    constantsTouched: []
    func_position:
      end: 1693
      start: 1673
    functionDepth: 3
    functionLinenumber: 1673
    functionLinenumberEnd: 1693
    functionName: ndpi_is_outlier
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_free_data_analysis
    - ndpi_alloc_data_analysis_from_series
    - ndpi_data_stddev
    - ndpi_data_mean
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_is_outlier(u_int32_t *past_values, u_int32_t num_past_values,\n\t\t
      \    u_int32_t value_to_check, float threshold,\n\t\t     float *lower, float
      *upper)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - values
    - num_values
    - predict_periods
    - prediction
    argTypes:
    - u_int32_t*
    - u_int32_t
    - u_int32_t
    - u_int32_t*
    constantsTouched: []
    func_position:
      end: 1727
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1727
    functionName: ndpi_predict_linear
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ndpi_predict_linear(u_int32_t *values, u_int32_t num_values,\n\t\t\tu_int32_t
      predict_periods, u_int32_t *prediction)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1744,1
    - Dst: pow
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1745,1
    - Dst: sqrt
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1754,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - values_a
    - values_b
    - num_values
    argTypes:
    - u_int32_t*
    - u_int32_t*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1755
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1755
    functionName: ndpi_pearson_correlation
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - pow
    - sqrt
    linkageType: ''
    returnType: double
    signature: double ndpi_pearson_correlation(u_int32_t *values_a, u_int32_t *values_b,
      u_int16_t num_values)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - crc
    - data
    - n_bytes
    argTypes:
    - u_int16_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1836
      start: 1830
    functionDepth: 0
    functionLinenumber: 1830
    functionLinenumberEnd: 1836
    functionName: __crc16
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t __crc16(u_int16_t crc, const void *data, size_t n_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - n_bytes
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1845
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1845
    functionName: ndpi_crc16_ccit
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_crc16_ccit(const void* data, size_t n_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __crc16
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - n_bytes
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1849
      start: 1847
    functionDepth: 1
    functionLinenumber: 1847
    functionLinenumberEnd: 1849
    functionName: ndpi_crc16_ccit_false
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - __crc16
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_crc16_ccit_false(const void *data, size_t n_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __crc16
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - n_bytes
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1853
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1853
    functionName: ndpi_crc16_xmodem
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - __crc16
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_crc16_xmodem(const void *data, size_t n_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - n_bytes
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 1862
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1862
    functionName: ndpi_crc16_x25
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_crc16_x25(const void* data, size_t n_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - data
    - length
    - crc
    argTypes:
    - void*
    - size_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 1945
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1945
    functionName: ndpi_crc32
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_crc32(const void *data, size_t length, u_int32_t crc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1980,1
    - Dst: ndpi_nearest_power_of_two
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1990,1
    - Dst: ndpi_nearest_power_of_two
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1994,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:1997,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2004,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - num_hashes
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2013
      start: 1972
    functionDepth: 1
    functionLinenumber: 1972
    functionLinenumberEnd: 2013
    functionName: ndpi_cm_sketch_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_nearest_power_of_two
    - printf
    - ndpi_free
    - ndpi_malloc
    - ndpi_calloc
    linkageType: ''
    returnType: struct ndpi_cm_sketch
    signature: struct ndpi_cm_sketch *ndpi_cm_sketch_init(u_int16_t num_hashes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_simple_hash
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2025,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sketch
    - element
    argTypes:
    - struct ndpi_cm_sketch*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2034
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2034
    functionName: ndpi_cm_sketch_add
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_simple_hash
    linkageType: ''
    returnType: void
    signature: void ndpi_cm_sketch_add(struct ndpi_cm_sketch *sketch, u_int32_t element)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_simple_hash
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2042,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2045,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sketch
    - element
    argTypes:
    - struct ndpi_cm_sketch*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2053
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2053
    functionName: ndpi_cm_sketch_count
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_min
    - printf
    - ndpi_simple_hash
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_cm_sketch_count(struct ndpi_cm_sketch *sketch, u_int32_t
      element)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2058,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sketch
    argTypes:
    - struct ndpi_cm_sketch*
    constantsTouched: []
    func_position:
      end: 2060
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2060
    functionName: ndpi_cm_sketch_destroy
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_cm_sketch_destroy(struct ndpi_cm_sketch *sketch)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct ndpi_popcount*
    constantsTouched: []
    func_position:
      end: 2080
      start: 2073
    functionDepth: 0
    functionLinenumber: 2073
    functionLinenumberEnd: 2080
    functionName: ndpi_popcount_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int ndpi_popcount_init(struct ndpi_popcount *h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_popcount
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2094,1
    - Dst: __builtin_popcount
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - h
    - buf
    - buf_len
    argTypes:
    - struct ndpi_popcount*
    - u_int8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2099
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2099
    functionName: ndpi_popcount_count
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 1
    functionsReached:
    - __builtin_popcount
    linkageType: ''
    returnType: void
    signature: void ndpi_popcount_count(struct ndpi_popcount *h, const u_int8_t *buf,
      u_int32_t buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_create
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_dimensions
    argTypes:
    - u_int
    constantsTouched: []
    func_position:
      end: 2104
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2104
    functionName: ndpi_kd_create
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - kd_create
    linkageType: ''
    returnType: ndpi_kd_tree
    signature: ndpi_kd_tree * ndpi_kd_create(u_int num_dimensions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - ndpi_kd_tree*
    constantsTouched: []
    func_position:
      end: 2106
      start: 2106
    functionDepth: 1
    functionLinenumber: 2106
    functionLinenumberEnd: 2106
    functionName: ndpi_kd_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - kd_free
    linkageType: ''
    returnType: void
    signature: void ndpi_kd_free(ndpi_kd_tree *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_clear
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - ndpi_kd_tree*
    constantsTouched: []
    func_position:
      end: 2108
      start: 2108
    functionDepth: 1
    functionLinenumber: 2108
    functionLinenumberEnd: 2108
    functionName: ndpi_kd_clear
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - kd_clear
    linkageType: ''
    returnType: void
    signature: void ndpi_kd_clear(ndpi_kd_tree *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_insert
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tree
    - data_vector
    - user_data
    argTypes:
    - ndpi_kd_tree*
    - double*
    - void*
    constantsTouched: []
    func_position:
      end: 2112
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2112
    functionName: ndpi_kd_insert
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - kd_insert
    linkageType: ''
    returnType: bool
    signature: bool ndpi_kd_insert(ndpi_kd_tree *tree, const double *data_vector,
      void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_nearest
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - data_vector
    argTypes:
    - ndpi_kd_tree*
    - double*
    constantsTouched: []
    func_position:
      end: 2116
      start: 2114
    functionDepth: 1
    functionLinenumber: 2114
    functionLinenumberEnd: 2116
    functionName: ndpi_kd_nearest
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - kd_nearest
    linkageType: ''
    returnType: ndpi_kd_tree_result
    signature: ndpi_kd_tree_result *ndpi_kd_nearest(ndpi_kd_tree *tree, const double
      *data_vector)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_res_size
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - res
    argTypes:
    - ndpi_kd_tree_result*
    constantsTouched: []
    func_position:
      end: 2118
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2118
    functionName: ndpi_kd_num_results
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - kd_res_size
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_kd_num_results(ndpi_kd_tree_result *res)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_res_item
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - res
    - user_data
    argTypes:
    - ndpi_kd_tree_result*
    - double**
    constantsTouched: []
    func_position:
      end: 2122
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2122
    functionName: ndpi_kd_result_get_item
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - kd_res_item
    linkageType: ''
    returnType: double
    signature: double * ndpi_kd_result_get_item(ndpi_kd_tree_result *res, double **user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_res_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - res
    argTypes:
    - ndpi_kd_tree_result*
    constantsTouched: []
    func_position:
      end: 2124
      start: 2124
    functionDepth: 1
    functionLinenumber: 2124
    functionLinenumberEnd: 2124
    functionName: ndpi_kd_result_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - kd_res_free
    linkageType: ''
    returnType: void
    signature: void ndpi_kd_result_free(ndpi_kd_tree_result *res)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a1
    - a2
    - num_dimensions
    argTypes:
    - double*
    - double*
    - u_int
    constantsTouched: []
    func_position:
      end: 2142
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2142
    functionName: ndpi_kd_distance
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: double
    signature: double ndpi_kd_distance(double *a1, double *a2, u_int num_dimensions)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: btree_init
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - n_rows
    - n_columns
    argTypes:
    - double**
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2149
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2149
    functionName: ndpi_btree_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - btree_init
    linkageType: ''
    returnType: ndpi_btree
    signature: ndpi_btree * ndpi_btree_init(double **data, u_int32_t n_rows, u_int32_t
      n_columns)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: btree_query
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - b
    - query_data
    - query_data_num_rows
    - query_data_num_columns
    - max_num_results
    argTypes:
    - ndpi_btree*
    - double**
    - u_int32_t
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2156
      start: 2151
    functionDepth: 1
    functionLinenumber: 2151
    functionLinenumberEnd: 2156
    functionName: ndpi_btree_query
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - btree_query
    linkageType: ''
    returnType: ndpi_knn
    signature: "ndpi_knn ndpi_btree_query(ndpi_btree *b, double **query_data,\n\t\t\t
      \ u_int32_t query_data_num_rows, u_int32_t query_data_num_columns,\n\t\t\t  u_int32_t
      max_num_results)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_knn
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - knn
    argTypes:
    - ndpi_knn
    constantsTouched: []
    func_position:
      end: 2158
      start: 2158
    functionDepth: 1
    functionLinenumber: 2158
    functionLinenumberEnd: 2158
    functionName: ndpi_free_knn
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - free_knn
    linkageType: ''
    returnType: void
    signature: void ndpi_free_knn(ndpi_knn knn)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_tree
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_btree*
    constantsTouched: []
    func_position:
      end: 2160
      start: 2160
    functionDepth: 1
    functionLinenumber: 2160
    functionLinenumberEnd: 2160
    functionName: ndpi_free_btree
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - free_tree
    linkageType: ''
    returnType: void
    signature: void ndpi_free_btree(ndpi_btree *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2181,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2182,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2196,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2197,1
    - Dst: sqrt
      Src: /src/ndpi/src/lib/ndpi_analyze.c:2199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - x
    - size
    - u
    - i_s
    argTypes:
    - u_int32_t*
    - u_int32_t
    - float*
    - float*
    constantsTouched: []
    func_position:
      end: 2200
      start: 2173
    functionDepth: 0
    functionLinenumber: 2173
    functionLinenumberEnd: 2200
    functionName: ndpi_mahalanobis_distance
    functionSourceFile: /src/ndpi/src/lib/ndpi_analyze.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - sqrt
    - ndpi_free
    linkageType: ''
    returnType: float
    signature: float ndpi_mahalanobis_distance(const u_int32_t *x, u_int32_t size,
      const float *u, const float *i_s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: ndpi_check_punycode_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_check_punycode_string(char * buffer , int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - vkey
    - vrootp
    argTypes:
    - void*
    - void**
    constantsTouched: []
    func_position:
      end: 129
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 129
    functionName: ndpi_tsearch
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_malloc
    linkageType: ''
    returnType: void
    signature: "void * ndpi_tsearch(const void *vkey, void **vrootp,\n\t\t    int
      (*compar)(const void *, const void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - vkey
    - vrootp
    argTypes:
    - void*
    - void**
    constantsTouched: []
    func_position:
      end: 173
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 173
    functionName: ndpi_tdelete
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: "void * ndpi_tdelete(const void *vkey, void **vrootp,\n\t\t    int
      (*compar)(const void *, const void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_trecurse
      Src: /src/ndpi/src/lib/ndpi_utils.c:185,1
    - Dst: ndpi_trecurse
      Src: /src/ndpi/src/lib/ndpi_utils.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - root
    - level
    - user_data
    argTypes:
    - ndpi_node*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 191
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 191
    functionName: ndpi_trecurse
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_trecurse
    linkageType: ''
    returnType: void
    signature: void ndpi_trecurse(ndpi_node *root, void (*action)(const void *, ndpi_VISIT,
      int, void*), int level, void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_trecurse
      Src: /src/ndpi/src/lib/ndpi_utils.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - vroot
    - user_data
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: ndpi_twalk
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_trecurse
    linkageType: ''
    returnType: void
    signature: void ndpi_twalk(const void *vroot, void (*action)(const void *, ndpi_VISIT,
      int, void *), void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - vkey
    - vrootp
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 224
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 224
    functionName: ndpi_tfind
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void * ndpi_tfind(const void *vkey, void *vrootp,\n\t\t  int (*compar)(const
      void *, const void *))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_tdestroy_recurse
      Src: /src/ndpi/src/lib/ndpi_utils.c:232,1
    - Dst: ndpi_tdestroy_recurse
      Src: /src/ndpi/src/lib/ndpi_utils.c:234,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - ndpi_node*
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: ndpi_tdestroy_recurse
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_tdestroy_recurse
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_tdestroy_recurse(ndpi_node* root, void (*free_action)(void
      *))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_tdestroy_recurse
      Src: /src/ndpi/src/lib/ndpi_utils.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vrootp
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: ndpi_tdestroy
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_tdestroy_recurse
    linkageType: ''
    returnType: void
    signature: void ndpi_tdestroy(void *vrootp, void (*freefct)(void *))
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ip_to_check
    - net
    - num_bits
    argTypes:
    - u_int32_t
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: ndpi_net_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_net_match(u_int32_t ip_to_check,\n\t\t\tu_int32_t net,\n\t\t\tu_int32_t
      num_bits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_net_match
      Src: /src/ndpi/src/lib/ndpi_utils.c:264,1
    - Dst: ndpi_net_match
      Src: /src/ndpi/src/lib/ndpi_utils.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - src
    - dst
    - net
    - num_bits
    argTypes:
    - u_int32_t
    - u_int32_t
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: ndpi_ips_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_net_match
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_ips_match(u_int32_t src, u_int32_t dst,\n\t\t\tu_int32_t
      net, u_int32_t num_bits)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 296
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 296
    functionName: ndpi_is_safe_ssl_cipher
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_safe_ssl_cipher(u_int32_t cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 731
    argCount: 2
    argNames:
    - cipher
    - unknown_cipher
    argTypes:
    - u_int32_t
    - char[]
    constantsTouched: []
    func_position:
      end: 671
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 671
    functionName: ndpi_cipher2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: char * ndpi_cipher2str(u_int32_t cipher, char unknown_cipher[8])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 681
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 681
    functionName: ndpi_is_other_char
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_is_other_char(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_ispunct
      Src: /src/ndpi/src/lib/ndpi_utils.c:686,1
    - Dst: ndpi_is_other_char
      Src: /src/ndpi/src/lib/ndpi_utils.c:686,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_utils.c:689,1
    - Dst: ndpi_isalpha
      Src: /src/ndpi/src/lib/ndpi_utils.c:690,1
    - Dst: ndpi_is_other_char
      Src: /src/ndpi/src/lib/ndpi_utils.c:691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 692
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 692
    functionName: _ndpi_is_valid_char
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_isdigit
    - ndpi_isalpha
    - ndpi_is_other_char
    - ndpi_ispunct
    linkageType: ''
    returnType: int
    signature: int _ndpi_is_valid_char(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ndpi_is_valid_char
      Src: /src/ndpi/src/lib/ndpi_utils.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 699
    functionName: _ndpi_is_valid_char_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - _ndpi_is_valid_char
    linkageType: ''
    returnType: void
    signature: void _ndpi_is_valid_char_init(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _ndpi_is_valid_char_init
      Src: /src/ndpi/src/lib/ndpi_utils.c:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 704
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 704
    functionName: ndpi_is_valid_char
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - _ndpi_is_valid_char_init
    linkageType: ''
    returnType: int
    signature: int ndpi_is_valid_char(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_utils.c:711,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_utils.c:711,1
    - Dst: ndpi_is_other_char
      Src: /src/ndpi/src/lib/ndpi_utils.c:712,1
    - Dst: ndpi_is_other_char
      Src: /src/ndpi/src/lib/ndpi_utils.c:713,1
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_utils.c:717,1
    - Dst: tolower
      Src: /src/ndpi/src/lib/ndpi_utils.c:717,1
    - Dst: ndpi_match_bigram
      Src: /src/ndpi/src/lib/ndpi_utils.c:719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 720
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 720
    functionName: ndpi_find_non_eng_bigrams
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_isdigit
    - tolower
    - ndpi_is_other_char
    - ndpi_match_bigram
    linkageType: ''
    returnType: int
    signature: int ndpi_find_non_eng_bigrams(char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_valid_char
      Src: /src/ndpi/src/lib/ndpi_utils.c:738,1
    - Dst: ndpi_is_valid_char
      Src: /src/ndpi/src/lib/ndpi_utils.c:739,1
    - Dst: ndpi_find_non_eng_bigrams
      Src: /src/ndpi/src/lib/ndpi_utils.c:740,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_utils.c:742,1
    - Dst: ndpi_is_valid_char
      Src: /src/ndpi/src/lib/ndpi_utils.c:748,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_utils.c:750,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_utils.c:767,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_utils.c:779,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 5
    argNames:
    - buffer
    - buffer_size
    - min_string_match_len
    - outbuf
    - outbuf_len
    argTypes:
    - char*
    - u_int
    - u_int8_t
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 783
      start: 726
    functionDepth: 4
    functionLinenumber: 726
    functionLinenumberEnd: 783
    functionName: ndpi_has_human_readeable_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_find_non_eng_bigrams
    - printf
    - ndpi_is_valid_char
    linkageType: ''
    returnType: int
    signature: "int ndpi_has_human_readeable_string(char *buffer, u_int buffer_size,\n\t\t\t\t
      \   u_int8_t min_string_match_len,\n\t\t\t\t    char *outbuf, u_int outbuf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - flow
    - proto_id
    argTypes:
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 814
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 814
    functionName: ndpi_get_flow_info_by_proto_id
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char * ndpi_get_flow_info_by_proto_id(struct ndpi_flow_struct const
      * const flow,\n                                                  u_int16_t proto_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_flow_info_by_proto_id
      Src: /src/ndpi/src/lib/ndpi_utils.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - flow
    - l7_protocol
    argTypes:
    - struct ndpi_flow_struct*
    - ndpi_protocol*
    constantsTouched: []
    func_position:
      end: 826
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 826
    functionName: ndpi_get_flow_info
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_get_flow_info_by_proto_id
    linkageType: ''
    returnType: char
    signature: "char * ndpi_get_flow_info(struct ndpi_flow_struct const * const flow,\n
      \                              ndpi_protocol const * const l7_protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:840,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:845,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:849,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:853,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - buf
    - buf_len
    - m_types
    argTypes:
    - char*
    - int
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 858
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 858
    functionName: ndpi_multimedia_flowtype2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: char *ndpi_multimedia_flowtype2str(char *buf, int buf_len, u_int8_t
      m_types)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:871,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:872,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:873,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:874,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:875,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:876,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:877,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:878,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:879,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:895,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:899,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:907,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 71
    argCount: 4
    argNames:
    - buf
    - buf_len
    - version
    - unknown_tls_version
    argTypes:
    - char*
    - int
    - u_int16_t
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 910
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 910
    functionName: ndpi_ssl_version2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    - strncpy
    linkageType: ''
    returnType: char
    signature: "char * ndpi_ssl_version2str(char *buf, int buf_len,\n                           u_int16_t
      version, u_int8_t *unknown_tls_version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/ndpi/src/lib/ndpi_utils.c:917,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 932
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 932
    functionName: ndpi_patchIPv6Address
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: void
    signature: void ndpi_patchIPv6Address(char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 5
    argNames:
    - dest
    - dest_len
    - offset
    - src
    - src_len
    argTypes:
    - u_int8_t*
    - u_int
    - u_int
    - u_int8_t*
    - u_int
    constantsTouched: []
    func_position:
      end: 949
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 949
    functionName: ndpi_user_pwd_payload_copy
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ndpi_user_pwd_payload_copy(u_int8_t *dest, u_int dest_len,\n\t\t\t\tu_int
      offset,\n\t\t\t\tconst u_int8_t *src, u_int src_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_utils.c:975,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:990,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:1016,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - src
    - len
    - out_len
    argTypes:
    - u_char*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 1027
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 1027
    functionName: ndpi_base64_decode
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - memset
    - ndpi_free
    linkageType: ''
    returnType: u_char
    signature: u_char * ndpi_base64_decode(const u_char *src, size_t len, size_t *out_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:1041,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - bytes_to_encode
    - in_len
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1077
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1077
    functionName: ndpi_base64_encode
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_malloc
    linkageType: ''
    returnType: char
    signature: char * ndpi_base64_encode(unsigned char const* bytes_to_encode, size_t
      in_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1089,1
    - Dst: NDPI_ISSET_BIT
      Src: /src/ndpi/src/lib/ndpi_utils.c:1093,1
    - Dst: ndpi_risk2severity
      Src: /src/ndpi/src/lib/ndpi_utils.c:1094,1
    - Dst: ndpi_serialize_start_of_block_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1098,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1099,1
    - Dst: ndpi_risk2str
      Src: /src/ndpi/src/lib/ndpi_utils.c:1099,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1100,1
    - Dst: ndpi_severity2str
      Src: /src/ndpi/src/lib/ndpi_utils.c:1100,1
    - Dst: ndpi_serialize_risk_score
      Src: /src/ndpi/src/lib/ndpi_utils.c:1101,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1102,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - serializer
    - risk
    argTypes:
    - ndpi_serializer*
    - ndpi_risk
    constantsTouched: []
    func_position:
      end: 1107
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1107
    functionName: ndpi_serialize_risk
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_string_string
    - ndpi_risk2str
    - ndpi_serialize_risk_score
    - ndpi_serialize_start_of_block_uint32
    - NDPI_ISSET_BIT
    - ndpi_risk2severity
    - ndpi_severity2str
    - ndpi_serialize_end_of_block
    - ndpi_serialize_start_of_block
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_risk(ndpi_serializer *serializer,\n                         ndpi_risk
      risk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1119,1
    - Dst: ndpi_risk2score
      Src: /src/ndpi/src/lib/ndpi_utils.c:1120,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1121,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1122,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1123,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - serializer
    - risk
    argTypes:
    - ndpi_serializer*
    - ndpi_risk_enum
    constantsTouched: []
    func_position:
      end: 1125
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1125
    functionName: ndpi_serialize_risk_score
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_serialize_string_uint32
    - ndpi_serialize_end_of_block
    - ndpi_risk2score
    - ndpi_serialize_start_of_block
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_risk_score(ndpi_serializer *serializer,\n                               ndpi_risk_enum
      risk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1136,1
    - Dst: ndpi_serialize_uint32_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1137,1
    - Dst: ndpi_confidence_get_name
      Src: /src/ndpi/src/lib/ndpi_utils.c:1137,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - serializer
    - confidence
    argTypes:
    - ndpi_serializer*
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 1139
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1139
    functionName: ndpi_serialize_confidence
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_confidence_get_name
    - ndpi_serialize_end_of_block
    - ndpi_serialize_start_of_block
    - ndpi_serialize_uint32_string
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_confidence(ndpi_serializer *serializer,\n                               ndpi_confidence_t
      confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:1151,1
    - Dst: ndpi_serialize_confidence
      Src: /src/ndpi/src/lib/ndpi_utils.c:1152,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1153,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/src/lib/ndpi_utils.c:1153,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1154,1
    - Dst: ndpi_protocol2id
      Src: /src/ndpi/src/lib/ndpi_utils.c:1154,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1155,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/src/lib/ndpi_utils.c:1155,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1157,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1158,1
    - Dst: ndpi_is_encrypted_proto
      Src: /src/ndpi/src/lib/ndpi_utils.c:1158,1
    - Dst: ndpi_get_proto_breed
      Src: /src/ndpi/src/lib/ndpi_utils.c:1160,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1162,1
    - Dst: ndpi_get_proto_breed_name
      Src: /src/ndpi/src/lib/ndpi_utils.c:1162,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1163,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1164,1
    - Dst: ndpi_category_get_name
      Src: /src/ndpi/src/lib/ndpi_utils.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - ndpi_struct
    - serializer
    - risk
    - confidence
    - l7_protocol
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_serializer*
    - ndpi_risk
    - ndpi_confidence_t
    - ndpi_protocol
    constantsTouched: []
    func_position:
      end: 1165
      start: 1143
    functionDepth: 3
    functionLinenumber: 1143
    functionLinenumberEnd: 1165
    functionName: ndpi_serialize_proto
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_get_proto_breed
    - ndpi_serialize_string_string
    - ndpi_serialize_confidence
    - ndpi_protocol2name
    - ndpi_get_proto_name
    - ndpi_get_proto_breed_name
    - ndpi_protocol2id
    - ndpi_serialize_risk
    - ndpi_is_encrypted_proto
    - ndpi_serialize_string_uint32
    - ndpi_category_get_name
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_proto(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                         ndpi_serializer *serializer,\n                          ndpi_risk
      risk,\n                          ndpi_confidence_t confidence,\n                          ndpi_protocol
      l7_protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_ssl_version2str
      Src: /src/ndpi/src/lib/ndpi_utils.c:1180,1
    - Dst: ndpi_gmtime_r
      Src: /src/ndpi/src/lib/ndpi_utils.c:1184,1
    - Dst: ndpi_gmtime_r
      Src: /src/ndpi/src/lib/ndpi_utils.c:1188,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1193,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1194,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1198,1
    - Dst: strftime
      Src: /src/ndpi/src/lib/ndpi_utils.c:1204,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1205,1
    - Dst: strftime
      Src: /src/ndpi/src/lib/ndpi_utils.c:1210,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1211,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1214,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1215,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1216,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1217,1
    - Dst: ndpi_cipher2str
      Src: /src/ndpi/src/lib/ndpi_utils.c:1218,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1222,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1226,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1230,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1234,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1238,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1251,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1254,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1256,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1259,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 2
    argNames:
    - serializer
    - flow
    argTypes:
    - ndpi_serializer*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1262
      start: 1169
    functionDepth: 2
    functionLinenumber: 1169
    functionLinenumberEnd: 1262
    functionName: ndpi_tls2json
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_ssl_version2str
    - ndpi_serialize_string_string
    - ndpi_gmtime_r
    - strftime
    - ndpi_serialize_string_uint32
    - ndpi_cipher2str
    - ndpi_serialize_end_of_block
    - ndpi_serialize_start_of_block
    linkageType: ''
    returnType: void
    signature: void ndpi_tls2json(ndpi_serializer *serializer, struct ndpi_flow_struct
      *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:1270,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:1272,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ap
    - buf
    - buf_len
    argTypes:
    - ndpi_address_port*
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 1278
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1278
    functionName: print_ndpi_address_port
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * print_ndpi_address_port(ndpi_address_port *ap, char *buf, u_int
      buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1295,1
    - Dst: ndpi_serialize_proto
      Src: /src/ndpi/src/lib/ndpi_utils.c:1296,1
    - Dst: ndpi_get_flow_info
      Src: /src/ndpi/src/lib/ndpi_utils.c:1298,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1301,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1302,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/src/lib/ndpi_utils.c:1302,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1306,1
    - Dst: ndpi_multimedia_flowtype2str
      Src: /src/ndpi/src/lib/ndpi_utils.c:1306,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/src/lib/ndpi_utils.c:1312,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1317,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1318,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1319,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1320,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1329,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1339,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1340,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1341,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1346,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1347,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1348,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1352,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1353,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1354,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1355,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1356,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1357,1
    - Dst: ndpi_serialize_start_of_list
      Src: /src/ndpi/src/lib/ndpi_utils.c:1359,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:1366,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:1368,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_utils.c:1371,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1372,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1373,1
    - Dst: ndpi_serialize_end_of_list
      Src: /src/ndpi/src/lib/ndpi_utils.c:1376,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1378,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1382,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1383,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1384,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1385,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1389,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1390,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1394,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1395,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1396,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1400,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1401,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1402,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1403,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1404,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1408,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1409,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1410,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1411,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1412,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1413,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1417,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1418,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1419,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1420,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:1421,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1422,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1423,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1427,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1428,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1429,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1430,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1431,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1435,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1436,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1437,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1438,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1439,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1443,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1444,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1445,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1446,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1450,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1451,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1452,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1456,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1457,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1458,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1459,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1460,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1461,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1467,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1470,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1471,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1472,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1473,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1477,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1481,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1485,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1488,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1492,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1494,1
    - Dst: ndpi_quic_version2str
      Src: /src/ndpi/src/lib/ndpi_utils.c:1496,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1498,1
    - Dst: ndpi_tls2json
      Src: /src/ndpi/src/lib/ndpi_utils.c:1500,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1502,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1506,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1507,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1508,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1509,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1511,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1515,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1516,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1517,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1518,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1520,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1524,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1525,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1526,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1527,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1529,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1533,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1534,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1535,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1536,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1537,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1544,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1546,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1554,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1557,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1560,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1563,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1566,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1569,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1572,1
    - Dst: ndpi_intoav4
      Src: /src/ndpi/src/lib/ndpi_utils.c:1573,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1576,1
    - Dst: ndpi_intoav6
      Src: /src/ndpi/src/lib/ndpi_utils.c:1577,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1580,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1582,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1587,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1590,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1594,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1598,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1602,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1606,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1610,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1614,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1618,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1622,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1626,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1630,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1634,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1638,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1642,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1646,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1650,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1654,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1658,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1662,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1666,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1669,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1674,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1675,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1676,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1681,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1682,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1683,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1684,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1685,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1686,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1690,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1693,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/src/lib/ndpi_utils.c:1693,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1696,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/src/lib/ndpi_utils.c:1696,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1699,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/src/lib/ndpi_utils.c:1699,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1702,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/src/lib/ndpi_utils.c:1702,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1705,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/src/lib/ndpi_utils.c:1705,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1707,1
    - Dst: ndpi_multimedia_flowtype2str
      Src: /src/ndpi/src/lib/ndpi_utils.c:1708,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1714,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1718,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1720,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1722,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1724,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1726,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1727,1
    - Dst: ndpi_tls2json
      Src: /src/ndpi/src/lib/ndpi_utils.c:1731,1
    - Dst: ndpi_tls2json
      Src: /src/ndpi/src/lib/ndpi_utils.c:1735,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_utils.c:1746,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 328
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - l7_protocol
    - serializer
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_protocol
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 1749
      start: 1283
    functionDepth: 4
    functionLinenumber: 1283
    functionLinenumberEnd: 1749
    functionName: ndpi_dpi2json
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_intoav6
    - ndpi_serialize_end_of_list
    - ndpi_get_flow_info
    - ndpi_quic_version2str
    - snprintf
    - strlen
    - ndpi_serialize_proto
    - ndpi_serialize_start_of_list
    - ndpi_multimedia_flowtype2str
    - inet_ntop
    - ndpi_tls2json
    - ndpi_serialize_end_of_block
    - print_ndpi_address_port
    - ndpi_get_host_domain
    - ndpi_intoav4
    - ndpi_serialize_start_of_block
    - ndpi_serialize_string_string
    - ndpi_serialize_string_float
    - ndpi_serialize_string_uint32
    linkageType: ''
    returnType: int
    signature: "int ndpi_dpi2json(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t
      \ struct ndpi_flow_struct *flow,\n\t\t  ndpi_protocol l7_protocol,\n\t\t  ndpi_serializer
      *serializer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1759,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1763,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1767,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1771,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1775,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1779,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1783,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1787,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1791,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1795,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1799,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1803,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1807,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1811,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1815,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1819,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - ip_proto
    - name
    - name_len
    argTypes:
    - u_int16_t
    - char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1825
      start: 1753
    functionDepth: 0
    functionLinenumber: 1753
    functionLinenumberEnd: 1825
    functionName: ndpi_get_ip_proto_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *ndpi_get_ip_proto_name(u_int16_t ip_proto, char *name, unsigned
      int name_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:1844,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:1845,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:1847,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:1848,1
    - Dst: ndpi_patchIPv6Address
      Src: /src/ndpi/src/lib/ndpi_utils.c:1850,1
    - Dst: ndpi_patchIPv6Address
      Src: /src/ndpi/src/lib/ndpi_utils.c:1850,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1853,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1854,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1855,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1856,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_utils.c:1856,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1857,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_utils.c:1857,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_utils.c:1859,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1862,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1865,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:1867,1
    - Dst: ndpi_get_ip_proto_name
      Src: /src/ndpi/src/lib/ndpi_utils.c:1868,1
    - Dst: ndpi_dpi2json
      Src: /src/ndpi/src/lib/ndpi_utils.c:1870,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 13
    argNames:
    - ndpi_struct
    - flow
    - ip_version
    - l4_protocol
    - vlan_id
    - src_v4
    - dst_v4
    - src_v6
    - dst_v6
    - src_port
    - dst_port
    - l7_protocol
    - serializer
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t
    - u_int8_t
    - u_int16_t
    - u_int32_t
    - u_int32_t
    - struct ndpi_in6_addr*
    - struct ndpi_in6_addr*
    - u_int16_t
    - u_int16_t
    - ndpi_protocol
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 1871
      start: 1830
    functionDepth: 5
    functionLinenumber: 1830
    functionLinenumberEnd: 1871
    functionName: ndpi_flow2json
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_string_string
    - ntohs
    - ndpi_patchIPv6Address
    - ndpi_dpi2json
    - ndpi_get_ip_proto_name
    - inet_ntop
    - ndpi_serialize_string_uint32
    linkageType: ''
    returnType: int
    signature: "int ndpi_flow2json(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t
      \  struct ndpi_flow_struct *flow,\n\t\t   u_int8_t ip_version,\n\t\t   u_int8_t
      l4_protocol,\n\t\t   u_int16_t vlan_id,\n\t\t   u_int32_t src_v4, u_int32_t
      dst_v4,\n\t\t   struct ndpi_in6_addr *src_v6, struct ndpi_in6_addr *dst_v6,\n\t\t
      \  u_int16_t src_port, u_int16_t dst_port,\n\t\t   ndpi_protocol l7_protocol,\n\t\t
      \  ndpi_serializer *serializer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - tt
    argTypes:
    - ndpi_packet_tunnel
    constantsTouched: []
    func_position:
      end: 1900
      start: 1875
    functionDepth: 0
    functionLinenumber: 1875
    functionLinenumberEnd: 1900
    functionName: ndpi_tunnel2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_tunnel2str(ndpi_packet_tunnel tt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1912
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1912
    functionName: ishex
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ishex(int x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ishex
      Src: /src/ndpi/src/lib/ndpi_utils.c:1924,1
    - Dst: ishex
      Src: /src/ndpi/src/lib/ndpi_utils.c:1925,1
    - Dst: sscanf
      Src: /src/ndpi/src/lib/ndpi_utils.c:1926,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1933
      start: 1916
    functionDepth: 1
    functionLinenumber: 1916
    functionLinenumberEnd: 1933
    functionName: ndpi_url_decode
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - sscanf
    - ishex
    linkageType: ''
    returnType: int
    signature: int ndpi_url_decode(const char *s, char *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_sqli_init
      Src: /src/ndpi/src/lib/ndpi_utils.c:1941,1
    - Dst: libinjection_is_sqli
      Src: /src/ndpi/src/lib/ndpi_utils.c:1943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - query
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1944
      start: 1937
    functionDepth: 1
    functionLinenumber: 1937
    functionLinenumberEnd: 1944
    functionName: ndpi_is_sql_injection
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - libinjection_sqli_init
    - libinjection_is_sqli
    linkageType: ''
    returnType: int
    signature: int ndpi_is_sql_injection(char* query)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_xss
      Src: /src/ndpi/src/lib/ndpi_utils.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - query
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1951
      start: 1948
    functionDepth: 1
    functionLinenumber: 1948
    functionLinenumberEnd: 1951
    functionName: ndpi_is_xss_injection
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - libinjection_xss
    linkageType: ''
    returnType: int
    signature: int ndpi_is_xss_injection(char* query)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:1963,1
    - Dst: pcre2_compile
      Src: /src/ndpi/src/lib/ndpi_utils.c:1965,1
    - Dst: pcre2_get_error_message
      Src: /src/ndpi/src/lib/ndpi_utils.c:1967,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:1970,1
    - Dst: pcre2_jit_compile
      Src: /src/ndpi/src/lib/ndpi_utils.c:1977,1
    - Dst: pcre2_get_error_message
      Src: /src/ndpi/src/lib/ndpi_utils.c:1981,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:1982,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1987
    functionName: ndpi_compile_rce_regex
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    - pcre2_jit_compile
    - ndpi_malloc
    - pcre2_compile
    - pcre2_get_error_message
    linkageType: ''
    returnType: void
    signature: void ndpi_compile_rce_regex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_compile_rce_regex
      Src: /src/ndpi/src/lib/ndpi_utils.c:1993,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/ndpi/src/lib/ndpi_utils.c:2004,1
    - Dst: pcre2_match
      Src: /src/ndpi/src/lib/ndpi_utils.c:2005,1
    - Dst: pcre2_match_data_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:2007,1
    - Dst: switch
      Src: /src/ndpi/src/lib/ndpi_utils.c:2013,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:2015,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:2018,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:2021,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:2024,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:2027,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:2030,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:2033,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - query
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2036
      start: 1991
    functionDepth: 1
    functionLinenumber: 1991
    functionLinenumberEnd: 2036
    functionName: ndpi_is_rce_injection
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_ERR
    - pcre2_match_data_free
    - pcre2_match_data_create_from_pattern
    - ndpi_compile_rce_regex
    - pcre2_match
    - switch
    linkageType: ''
    returnType: int
    signature: int ndpi_is_rce_injection(char* query)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_utils.c:2072,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_utils.c:2076,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:2088,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_utils.c:2088,1
    - Dst: ndpi_url_decode
      Src: /src/ndpi/src/lib/ndpi_utils.c:2091,1
    - Dst: ndpi_is_xss_injection
      Src: /src/ndpi/src/lib/ndpi_utils.c:2096,1
    - Dst: ndpi_is_sql_injection
      Src: /src/ndpi/src/lib/ndpi_utils.c:2098,1
    - Dst: ndpi_is_rce_injection
      Src: /src/ndpi/src/lib/ndpi_utils.c:2101,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_utils.c:2106,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:2110,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:2116,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:2117,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_utils.c:2123,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:2128,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/ndpi_utils.c:2132,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - url
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 2139
      start: 2063
    functionDepth: 2
    functionLinenumber: 2063
    functionLinenumberEnd: 2139
    functionName: ndpi_validate_url
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_is_xss_injection
    - printf
    - ndpi_free
    - ndpi_is_sql_injection
    - ndpi_url_decode
    - ndpi_strdup
    - ndpi_malloc
    - strstr
    - ndpi_is_rce_injection
    - snprintf
    - strlen
    - strtok_r
    linkageType: ''
    returnType: ndpi_risk_enum
    signature: "ndpi_risk_enum ndpi_validate_url(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t struct ndpi_flow_struct *flow,\n\t\t\t\t char *url)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - proto
    argTypes:
    - ndpi_protocol
    constantsTouched: []
    func_position:
      end: 2150
      start: 2143
    functionDepth: 0
    functionLinenumber: 2143
    functionLinenumberEnd: 2150
    functionName: ndpi_is_protocol_detected
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_protocol_detected(ndpi_protocol proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:2327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 118
    argCount: 1
    argNames:
    - risk
    argTypes:
    - ndpi_risk_enum
    constantsTouched: []
    func_position:
      end: 2330
      start: 2154
    functionDepth: 1
    functionLinenumber: 2154
    functionLinenumberEnd: 2330
    functionName: ndpi_risk2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 3
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: char * ndpi_risk2str(ndpi_risk_enum risk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2339,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2341,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2343,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2345,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2347,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2349,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2351,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2353,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2355,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2357,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2359,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2361,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2363,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2365,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2367,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2369,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2371,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2373,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2375,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2377,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2379,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2381,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2383,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2385,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2387,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2389,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2391,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2393,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2395,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2397,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2399,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2401,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2403,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2405,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2407,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2409,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2411,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2413,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2415,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2417,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2419,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2421,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2423,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2425,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2427,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2429,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2431,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2433,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2435,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2437,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2439,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2441,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2443,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2445,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2447,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2449,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 119
    argCount: 1
    argNames:
    - risk
    argTypes:
    - ndpi_risk_enum
    constantsTouched: []
    func_position:
      end: 2456
      start: 2336
    functionDepth: 0
    functionLinenumber: 2336
    functionLinenumberEnd: 2456
    functionName: ndpi_risk2code
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - STRINGIFY
    linkageType: ''
    returnType: char
    signature: char * ndpi_risk2code(ndpi_risk_enum risk)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2461,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2461,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2463,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2463,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2465,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2465,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2467,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2467,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2469,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2469,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2471,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2471,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2473,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2473,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2475,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2475,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2477,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2477,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2479,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2479,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2481,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2481,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2483,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2483,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2485,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2485,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2487,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2487,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2489,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2489,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2491,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2491,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2493,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2493,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2495,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2495,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2497,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2497,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2499,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2499,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2501,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2501,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2503,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2503,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2505,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2505,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2507,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2507,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2509,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2509,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2511,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2511,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2513,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2513,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2515,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2515,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2517,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2517,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2519,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2519,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2521,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2521,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2523,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2523,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2525,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2525,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2527,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2527,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2529,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2529,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2531,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2531,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2533,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2533,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2535,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2535,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2537,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2537,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2539,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2539,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2541,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2541,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2543,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2543,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2545,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2545,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2547,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2547,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2549,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2549,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2551,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2551,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2553,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2553,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2555,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2555,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2557,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2557,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2559,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2559,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2561,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2561,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2563,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2563,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2565,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2565,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2567,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2567,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2569,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2569,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2571,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2571,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2573,1
    - Dst: STRINGIFY
      Src: /src/ndpi/src/lib/ndpi_utils.c:2573,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 116
    argCount: 1
    argNames:
    - risk
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2577
      start: 2460
    functionDepth: 0
    functionLinenumber: 2460
    functionLinenumberEnd: 2577
    functionName: ndpi_code2risk
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - STRINGIFY
    - strcmp
    linkageType: ''
    returnType: ndpi_risk_enum
    signature: ndpi_risk_enum ndpi_code2risk(const char* risk)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - ndpi_risk_severity
    constantsTouched: []
    func_position:
      end: 2603
      start: 2581
    functionDepth: 0
    functionLinenumber: 2581
    functionLinenumberEnd: 2603
    functionName: ndpi_severity2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_severity2str(ndpi_risk_severity s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ISSET_BIT
      Src: /src/ndpi/src/lib/ndpi_utils.c:2620,1
    - Dst: ndpi_risk2severity
      Src: /src/ndpi/src/lib/ndpi_utils.c:2621,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - risk
    - client_score
    - server_score
    argTypes:
    - ndpi_risk
    - u_int16_t*
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 2658
      start: 2607
    functionDepth: 1
    functionLinenumber: 2607
    functionLinenumberEnd: 2658
    functionName: ndpi_risk2score
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached:
    - NDPI_ISSET_BIT
    - ndpi_risk2severity
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t ndpi_risk2score(ndpi_risk risk,\n\t\t\t  u_int16_t *client_score,\n\t\t\t
      \ u_int16_t *server_score)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - m
    argTypes:
    - ndpi_http_method
    constantsTouched: []
    func_position:
      end: 2747
      start: 2722
    functionDepth: 0
    functionLinenumber: 2722
    functionLinenumberEnd: 2747
    functionName: ndpi_http_method2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_http_method2str(ndpi_http_method m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2774,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2776,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2792,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2794,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2796,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 2
    argNames:
    - method
    - method_len
    argTypes:
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2806
      start: 2751
    functionDepth: 0
    functionLinenumber: 2751
    functionLinenumberEnd: 2806
    functionName: ndpi_http_str2method
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: ndpi_http_method
    signature: ndpi_http_method ndpi_http_str2method(const char* method, u_int16_t
      method_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - ndpi_str_hash**
    constantsTouched: []
    func_position:
      end: 2816
      start: 2810
    functionDepth: 0
    functionLinenumber: 2810
    functionLinenumberEnd: 2816
    functionName: ndpi_hash_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_hash_init(ndpi_str_hash **h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_DEL
      Src: /src/ndpi/src/lib/ndpi_utils.c:2826,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:2827,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:2828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - h
    argTypes:
    - ndpi_str_hash**
    constantsTouched: []
    func_position:
      end: 2833
      start: 2820
    functionDepth: 0
    functionLinenumber: 2820
    functionLinenumberEnd: 2833
    functionName: ndpi_hash_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 3
    functionsReached:
    - HASH_DEL
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_hash_free(ndpi_str_hash **h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FIND
      Src: /src/ndpi/src/lib/ndpi_utils.c:2844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - h
    - key
    - key_len
    - value
    argTypes:
    - ndpi_str_hash*
    - char*
    - u_int
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 2853
      start: 2837
    functionDepth: 0
    functionLinenumber: 2837
    functionLinenumberEnd: 2853
    functionName: ndpi_hash_find_entry
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached:
    - HASH_FIND
    linkageType: ''
    returnType: int
    signature: int ndpi_hash_find_entry(ndpi_str_hash *h, char *key, u_int key_len,
      u_int16_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FIND
      Src: /src/ndpi/src/lib/ndpi_utils.c:2864,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:2871,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:2875,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:2878,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:2881,1
    - Dst: HASH_ADD
      Src: /src/ndpi/src/lib/ndpi_utils.c:2887,1
    - Dst: HASH_FIND
      Src: /src/ndpi/src/lib/ndpi_utils.c:2889,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:2891,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:2892,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - h
    - key
    - key_len
    - value
    argTypes:
    - ndpi_str_hash**
    - char*
    - u_int8_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2897
      start: 2857
    functionDepth: 0
    functionLinenumber: 2857
    functionLinenumberEnd: 2897
    functionName: ndpi_hash_add_entry
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 4
    functionsReached:
    - memcpy
    - ndpi_free
    - HASH_FIND
    - ndpi_malloc
    - HASH_ADD
    - ndpi_calloc
    linkageType: ''
    returnType: int
    signature: int ndpi_hash_add_entry(ndpi_str_hash **h, char *key, u_int8_t key_len,
      u_int16_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/src/lib/ndpi_utils.c:2910,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_utils.c:2912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_str
    - pin
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct in_addr*
    constantsTouched: []
    func_position:
      end: 2918
      start: 2901
    functionDepth: 1
    functionLinenumber: 2901
    functionLinenumberEnd: 2918
    functionName: ndpi_host_ip_risk_ptree_match
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_patricia_search_best
    - ndpi_fill_prefix_v4
    linkageType: ''
    returnType: u_int64_t
    signature: "u_int64_t ndpi_host_ip_risk_ptree_match(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t       struct in_addr *pin /* network byte order */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/src/lib/ndpi_utils.c:2931,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/src/lib/ndpi_utils.c:2933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_str
    - pin6
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct in6_addr*
    constantsTouched: []
    func_position:
      end: 2939
      start: 2922
    functionDepth: 1
    functionLinenumber: 2922
    functionLinenumberEnd: 2939
    functionName: ndpi_host_ip_risk_ptree_match6
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_fill_prefix_v6
    - ndpi_patricia_search_best
    linkageType: ''
    returnType: u_int64_t
    signature: "u_int64_t ndpi_host_ip_risk_ptree_match6(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t        struct in6_addr *pin6)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:2950,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_str
    - issuerDN
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 2958
      start: 2944
    functionDepth: 0
    functionLinenumber: 2944
    functionLinenumberEnd: 2958
    functionName: ndpi_check_issuerdn_risk_exception
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_check_issuerdn_risk_exception(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t    char *issuerDN)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_utils.c:2976,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_utils.c:2977,1
    - Dst: ac_automata_search
      Src: /src/ndpi/src/lib/ndpi_utils.c:2980,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - hostname
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 2988
      start: 2963
    functionDepth: 1
    functionLinenumber: 2963
    functionLinenumberEnd: 2988
    functionName: ndpi_check_hostname_risk_exception
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - strlen
    - ac_automata_search
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_check_hostname_risk_exception(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t\t   struct ndpi_flow_struct *flow,\n\t\t\t\t\t\t   char
      *hostname)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_host_ip_risk_ptree_match
      Src: /src/ndpi/src/lib/ndpi_utils.c:3000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - addr
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 3005
      start: 2993
    functionDepth: 2
    functionLinenumber: 2993
    functionLinenumberEnd: 3005
    functionName: ndpi_check_ipv4_exception
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_host_ip_risk_ptree_match
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_check_ipv4_exception(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t  struct ndpi_flow_struct *flow,\n\t\t\t\t\t  u_int32_t
      addr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_host_ip_risk_ptree_match6
      Src: /src/ndpi/src/lib/ndpi_utils.c:3014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - addr
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct in6_addr*
    constantsTouched: []
    func_position:
      end: 3019
      start: 3009
    functionDepth: 2
    functionLinenumber: 3009
    functionLinenumberEnd: 3019
    functionName: ndpi_check_ipv6_exception
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_host_ip_risk_ptree_match6
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_check_ipv6_exception(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t  struct ndpi_flow_struct *flow,\n\t\t\t\t\t  struct in6_addr
      *addr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_utils.c:3025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_str
    - flowrisk_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_risk_enum
    constantsTouched: []
    func_position:
      end: 3028
      start: 3023
    functionDepth: 1
    functionLinenumber: 3023
    functionLinenumberEnd: 3028
    functionName: is_flowrisk_enabled
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmask_is_set
    linkageType: ''
    returnType: int
    signature: int is_flowrisk_enabled(struct ndpi_detection_module_struct *ndpi_str,
      ndpi_risk_enum flowrisk_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/src/lib/ndpi_utils.c:3034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_str
    - flowrisk_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_risk_enum
    constantsTouched: []
    func_position:
      end: 3037
      start: 3032
    functionDepth: 1
    functionLinenumber: 3032
    functionLinenumberEnd: 3037
    functionName: is_flowrisk_info_enabled
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_bitmask_is_set
    linkageType: ''
    returnType: int
    signature: int is_flowrisk_info_enabled(struct ndpi_detection_module_struct *ndpi_str,
      ndpi_risk_enum flowrisk_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_check_hostname_risk_exception
      Src: /src/ndpi/src/lib/ndpi_utils.c:3053,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:3064,1
    - Dst: ndpi_check_ipv4_exception
      Src: /src/ndpi/src/lib/ndpi_utils.c:3081,1
    - Dst: ndpi_check_ipv4_exception
      Src: /src/ndpi/src/lib/ndpi_utils.c:3082,1
    - Dst: ndpi_check_ipv6_exception
      Src: /src/ndpi/src/lib/ndpi_utils.c:3084,1
    - Dst: ndpi_check_ipv6_exception
      Src: /src/ndpi/src/lib/ndpi_utils.c:3085,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - ndpi_str
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 3092
      start: 3041
    functionDepth: 3
    functionLinenumber: 3041
    functionLinenumberEnd: 3092
    functionName: ndpi_handle_risk_exceptions
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_check_ipv6_exception
    - ndpi_check_hostname_risk_exception
    - ndpi_check_ipv4_exception
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: "void ndpi_handle_risk_exceptions(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_flowrisk_enabled
      Src: /src/ndpi/src/lib/ndpi_utils.c:3100,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3104,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/ndpi_utils.c:3118,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/ndpi_utils.c:3131,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 4
    argNames:
    - ndpi_str
    - flow
    - r
    - risk_message
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_risk_enum
    - char*
    constantsTouched: []
    func_position:
      end: 3152
      start: 3096
    functionDepth: 2
    functionLinenumber: 3096
    functionLinenumberEnd: 3152
    functionName: ndpi_set_risk
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 17
    functionsReached:
    - is_flowrisk_info_enabled
    - is_flowrisk_enabled
    - ndpi_isset_risk
    linkageType: ''
    returnType: void
    signature: "void ndpi_set_risk(struct ndpi_detection_module_struct *ndpi_str,
      struct ndpi_flow_struct *flow,\n                   ndpi_risk_enum r, char *risk_message)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3158,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/ndpi_utils.c:3164,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:3171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - r
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_risk_enum
    constantsTouched: []
    func_position:
      end: 3182
      start: 3156
    functionDepth: 2
    functionLinenumber: 3156
    functionLinenumberEnd: 3182
    functionName: ndpi_unset_risk
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - is_flowrisk_info_enabled
    - ndpi_isset_risk
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: "void ndpi_unset_risk(struct ndpi_detection_module_struct *ndpi_str,\n
      \                    struct ndpi_flow_struct *flow, ndpi_risk_enum r)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - flow
    - r
    argTypes:
    - struct ndpi_flow_struct*
    - ndpi_risk_enum
    constantsTouched: []
    func_position:
      end: 3190
      start: 3186
    functionDepth: 0
    functionLinenumber: 3186
    functionLinenumberEnd: 3190
    functionName: ndpi_isset_risk
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_isset_risk(struct ndpi_flow_struct *flow, ndpi_risk_enum r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/ndpi_utils.c:3199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 3205
      start: 3194
    functionDepth: 0
    functionLinenumber: 3194
    functionLinenumberEnd: 3205
    functionName: ndpi_is_printable_buffer
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_isprint
    linkageType: ''
    returnType: int
    signature: int ndpi_is_printable_buffer(uint8_t const * const buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/ndpi_utils.c:3214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3221
      start: 3209
    functionDepth: 0
    functionLinenumber: 3209
    functionLinenumberEnd: 3221
    functionName: ndpi_normalize_printable_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_isprint
    linkageType: ''
    returnType: int
    signature: int ndpi_normalize_printable_string(char * const str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/ndpi_utils.c:3235,1
    - Dst: ndpi_isspace
      Src: /src/ndpi/src/lib/ndpi_utils.c:3236,1
    - Dst: ndpi_ispunct
      Src: /src/ndpi/src/lib/ndpi_utils.c:3237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3244
      start: 3225
    functionDepth: 0
    functionLinenumber: 3225
    functionLinenumberEnd: 3244
    functionName: ndpi_is_valid_hostname
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_isspace
    - ndpi_isprint
    - ndpi_ispunct
    linkageType: ''
    returnType: int
    signature: int ndpi_is_valid_hostname(char * const str, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_utils.c:3253,1
    - Dst: log2f
      Src: /src/ndpi/src/lib/ndpi_utils.c:3265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - u_int8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 3269
      start: 3248
    functionDepth: 0
    functionLinenumber: 3248
    functionLinenumberEnd: 3269
    functionName: ndpi_entropy
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - memset
    - log2f
    linkageType: ''
    returnType: float
    signature: float ndpi_entropy(u_int8_t const * const buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ENTROPY_ENCRYPTED_OR_RANDOM
      Src: /src/ndpi/src/lib/ndpi_utils.c:3280,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3281,1
    - Dst: NDPI_ENTROPY_EXECUTABLE_ENCRYPTED
      Src: /src/ndpi/src/lib/ndpi_utils.c:3282,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3283,1
    - Dst: NDPI_ENTROPY_EXECUTABLE_PACKED
      Src: /src/ndpi/src/lib/ndpi_utils.c:3284,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3285,1
    - Dst: NDPI_ENTROPY_EXECUTABLE
      Src: /src/ndpi/src/lib/ndpi_utils.c:3286,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3287,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - entropy
    - buf
    - len
    argTypes:
    - float
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3293
      start: 3274
    functionDepth: 0
    functionLinenumber: 3274
    functionLinenumberEnd: 3293
    functionName: ndpi_entropy2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - NDPI_ENTROPY_EXECUTABLE_PACKED
    - NDPI_ENTROPY_ENCRYPTED_OR_RANDOM
    - NDPI_ENTROPY_EXECUTABLE_ENCRYPTED
    - snprintf
    - NDPI_ENTROPY_EXECUTABLE
    linkageType: ''
    returnType: char
    signature: char *ndpi_entropy2str(float entropy, char *buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ENTROPY_PLAINTEXT
      Src: /src/ndpi/src/lib/ndpi_utils.c:3301,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3316,1
    - Dst: ndpi_entropy2str
      Src: /src/ndpi/src/lib/ndpi_utils.c:3317,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3321,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3322,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3323,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3324,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3325,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3326,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3327,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3335,1
    - Dst: ndpi_entropy2str
      Src: /src/ndpi/src/lib/ndpi_utils.c:3336,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/ndpi_utils.c:3341,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 3342
      start: 3297
    functionDepth: 3
    functionLinenumber: 3297
    functionLinenumberEnd: 3342
    functionName: ndpi_entropy2risk
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_set_risk
    - NDPI_ENTROPY_PLAINTEXT
    - ndpi_unset_risk
    - ndpi_isset_risk
    - ndpi_entropy2str
    linkageType: ''
    returnType: void
    signature: "void ndpi_entropy2risk(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cbuf
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 3349
      start: 3346
    functionDepth: 0
    functionLinenumber: 3346
    functionLinenumberEnd: 3349
    functionName: get_n16bit
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_n16bit(uint8_t const * cbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_n16bit
      Src: /src/ndpi/src/lib/ndpi_utils.c:3360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - u_int8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 3372
      start: 3351
    functionDepth: 1
    functionLinenumber: 3351
    functionLinenumberEnd: 3372
    functionName: icmp4_checksum
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - get_n16bit
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t icmp4_checksum(const u_int8_t * buf, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 3384
      start: 3376
    functionDepth: 0
    functionLinenumber: 3376
    functionLinenumberEnd: 3384
    functionName: ndpi_get_flow_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_get_flow_name(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_utils.c:3421,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/ndpi_utils.c:3422,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:3424,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_utils.c:3427,1
    - Dst: ac_automata_add
      Src: /src/ndpi/src/lib/ndpi_utils.c:3429,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:3430,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:3431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 3434
      start: 3388
    functionDepth: 1
    functionLinenumber: 3388
    functionLinenumberEnd: 3434
    functionName: load_common_alpns
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - memset
    - NDPI_LOG_ERR
    - ndpi_free
    - ndpi_strdup
    - ac_automata_add
    - strlen
    linkageType: ''
    returnType: void
    signature: void load_common_alpns(struct ndpi_detection_module_struct *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_utils.c:3446,1
    - Dst: ac_automata_search
      Src: /src/ndpi/src/lib/ndpi_utils.c:3450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ndpi_str
    - alpn_to_check
    - alpn_to_check_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 3455
      start: 3438
    functionDepth: 1
    functionLinenumber: 3438
    functionLinenumberEnd: 3455
    functionName: is_a_common_alpn
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - ac_automata_search
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t is_a_common_alpn(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \ const char *alpn_to_check, u_int alpn_to_check_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_str
    - protoId
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 3463
      start: 3459
    functionDepth: 0
    functionLinenumber: 3459
    functionLinenumberEnd: 3463
    functionName: ndpi_is_valid_protoId
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_valid_protoId(struct ndpi_detection_module_struct
      *ndpi_str, u_int16_t protoId)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_utils.c:3469,1
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_utils.c:3471,1
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_utils.c:3471,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_str
    - proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_protocol
    constantsTouched: []
    func_position:
      end: 3480
      start: 3467
    functionDepth: 1
    functionLinenumber: 3467
    functionLinenumberEnd: 3480
    functionName: ndpi_is_encrypted_proto
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_is_encrypted_proto(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t ndpi_protocol proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 3497
      start: 3484
    functionDepth: 0
    functionLinenumber: 3484
    functionLinenumberEnd: 3497
    functionName: ndpi_get_flow_error_code
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_get_flow_error_code(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - str
    - size
    - format
    - va_args
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    constantsTouched: []
    func_position:
      end: 3518
      start: 3501
    functionDepth: 0
    functionLinenumber: 3501
    functionLinenumberEnd: 3518
    functionName: ndpi_vsnprintf
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int ndpi_vsnprintf(char * str, size_t size, char const * format, va_list
      va_args)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/ndpi/src/lib/ndpi_utils.c:3526,1
    - Dst: gmtime_r
      Src: /src/ndpi/src/lib/ndpi_utils.c:3529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - timep
    - result
    argTypes:
    - time_t*
    - struct tm*
    constantsTouched: []
    func_position:
      end: 3531
      start: 3522
    functionDepth: 0
    functionLinenumber: 3522
    functionLinenumberEnd: 3531
    functionName: ndpi_gmtime_r
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - gmtime_s
    - gmtime_r
    linkageType: ''
    returnType: struct tm
    signature: "struct tm *ndpi_gmtime_r(const time_t *timep,\n                         struct
      tm *result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/ndpi/src/lib/ndpi_utils.c:3538,1
    - Dst: va_end
      Src: /src/ndpi/src/lib/ndpi_utils.c:3540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - str
    - size
    - format
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 3543
      start: 3535
    functionDepth: 0
    functionLinenumber: 3535
    functionLinenumberEnd: 3543
    functionName: ndpi_snprintf
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 17
    functionsReached:
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int ndpi_snprintf(char * str, size_t size, char const * format, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 3553
      start: 3547
    functionDepth: 0
    functionLinenumber: 3547
    functionLinenumberEnd: 3553
    functionName: risk_infos_pair_cmp
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int risk_infos_pair_cmp (const void *_a, const void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:3569,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:3572,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/ndpi_utils.c:3573,1
    - Dst: ndpi_init_serializer
      Src: /src/ndpi/src/lib/ndpi_utils.c:3580,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:3581,1
    - Dst: ndpi_serialize_uint32_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:3586,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/src/lib/ndpi_utils.c:3590,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_utils.c:3593,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:3595,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/src/lib/ndpi_utils.c:3599,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:3601,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:3621,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - flow
    - out
    - out_len
    - use_json
    argTypes:
    - struct ndpi_flow_struct*
    - char*
    - u_int
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 3624
      start: 3557
    functionDepth: 1
    functionLinenumber: 3557
    functionLinenumberEnd: 3624
    functionName: ndpi_get_flow_risk_info
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_get_buffer
    - memcpy
    - ndpi_free
    - ndpi_min
    - ndpi_malloc
    - strncpy
    - ndpi_serialize_uint32_string
    - qsort
    - ndpi_init_serializer
    - ndpi_term_serializer
    linkageType: ''
    returnType: char
    signature: "char * ndpi_get_flow_risk_info(struct ndpi_flow_struct *flow,\n\t\t\t
      \     char *out, u_int out_len,\n\t\t\t      u_int8_t use_json)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_check_hostname_risk_exception
      Src: /src/ndpi/src/lib/ndpi_utils.c:3646,1
    - Dst: ndpi_check_issuerdn_risk_exception
      Src: /src/ndpi/src/lib/ndpi_utils.c:3651,1
    - Dst: ndpi_check_ipv4_exception
      Src: /src/ndpi/src/lib/ndpi_utils.c:3656,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:3661,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - ndpi_str
    - num_params
    - params
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int
    - ndpi_risk_params[]
    constantsTouched: []
    func_position:
      end: 3667
      start: 3635
    functionDepth: 3
    functionLinenumber: 3635
    functionLinenumberEnd: 3667
    functionName: ndpi_check_flow_risk_exceptions
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_check_issuerdn_risk_exception
    - NDPI_LOG_ERR
    - ndpi_check_hostname_risk_exception
    - ndpi_check_ipv4_exception
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_check_flow_risk_exceptions(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t u_int num_params,\n\t\t\t\t\t ndpi_risk_params params[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - payload
    - payload_len
    - value_len
    argTypes:
    - unsigned char*
    - int
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 3703
      start: 3671
    functionDepth: 0
    functionLinenumber: 3671
    functionLinenumberEnd: 3703
    functionName: asn1_ber_decode_length
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t asn1_ber_decode_length(const unsigned char *payload, int payload_len,
      u_int16_t *value_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - addr
    - buf
    - bufLen
    argTypes:
    - unsigned int
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 3732
      start: 3707
    functionDepth: 0
    functionLinenumber: 3707
    functionLinenumberEnd: 3732
    functionName: ndpi_intoav4
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_intoav4(unsigned int addr, char* buf, u_int16_t bufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:3741,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/ndpi_utils.c:3748,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - addr
    - buf
    - bufLen
    argTypes:
    - struct ndpi_in6_addr*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 3763
      start: 3736
    functionDepth: 0
    functionLinenumber: 3736
    functionLinenumberEnd: 3763
    functionName: ndpi_intoav6
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - inet_ntop
    linkageType: ''
    returnType: char
    signature: char * ndpi_intoav6(struct ndpi_in6_addr *addr, char* buf, u_int16_t
      bufLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 3779
      start: 3768
    functionDepth: 0
    functionLinenumber: 3768
    functionLinenumberEnd: 3779
    functionName: ndpi_nearest_power_of_two
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_nearest_power_of_two(u_int32_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/ndpi_utils.c:3786,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_utils.c:3786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 3787
      start: 3783
    functionDepth: 0
    functionLinenumber: 3783
    functionLinenumberEnd: 3787
    functionName: tpkt_verify_hdr
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - get_u_int16_t
    - htons
    linkageType: ''
    returnType: int
    signature: int tpkt_verify_hdr(const struct ndpi_packet_struct * const packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/ndpi/src/lib/ndpi_utils.c:3802,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - numstr
    - minval
    - maxval
    - errstrp
    - base
    argTypes:
    - char*
    - int64_t
    - int64_t
    - char**
    - int
    constantsTouched: []
    func_position:
      end: 3827
      start: 3791
    functionDepth: 0
    functionLinenumber: 3791
    functionLinenumberEnd: 3827
    functionName: ndpi_strtonum
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 5
    functionsReached:
    - strtoll
    linkageType: ''
    returnType: int64_t
    signature: "int64_t ndpi_strtonum(const char *numstr, int64_t minval,\n\t\t      int64_t
      maxval, const char **errstrp, int base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_utils.c:3837,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - haystack
    - needle
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3854
      start: 3831
    functionDepth: 0
    functionLinenumber: 3831
    functionLinenumberEnd: 3854
    functionName: ndpi_strrstr
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: char * ndpi_strrstr(const char *haystack, const char *needle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/ndpi_utils.c:3862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - suffix
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 3863
      start: 3858
    functionDepth: 0
    functionLinenumber: 3858
    functionLinenumberEnd: 3863
    functionName: ndpi_str_endswith
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ndpi_str_endswith(const char *s, const char *suffix)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - lru_cache_type
    constantsTouched: []
    func_position:
      end: 3876
      start: 3867
    functionDepth: 0
    functionLinenumber: 3867
    functionLinenumberEnd: 3876
    functionName: ndpi_lru_cache_idx_to_name
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ndpi_lru_cache_idx_to_name(lru_cache_type idx)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - in
    - len
    - out
    - bufsize
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3887
      start: 3880
    functionDepth: 0
    functionLinenumber: 3880
    functionLinenumberEnd: 3887
    functionName: ndpi_compress_str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ndpi_compress_str(const char * in, size_t len, char * out, size_t
      bufsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shoco_decompress
      Src: /src/ndpi/src/lib/ndpi_utils.c:3892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - in
    - len
    - out
    - bufsize
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 3893
      start: 3891
    functionDepth: 1
    functionLinenumber: 3891
    functionLinenumberEnd: 3893
    functionName: ndpi_decompress_str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - shoco_decompress
    linkageType: ''
    returnType: size_t
    signature: size_t ndpi_decompress_str(const char * in, size_t len, char * out,
      size_t bufsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_utils.c:3909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3920
      start: 3905
    functionDepth: 0
    functionLinenumber: 3905
    functionLinenumberEnd: 3920
    functionName: ndpi_domain_mapper_init
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ndpi_domain_mapper_init()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_domain_mapper_init
      Src: /src/ndpi/src/lib/ndpi_utils.c:3933,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_utils.c:3937,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3943,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/src/lib/ndpi_utils.c:3946,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3949,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3951,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_utils.c:3952,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_utils.c:3952,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3955,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:3967,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:3978,1
    - Dst: ndpi_compress_str
      Src: /src/ndpi/src/lib/ndpi_utils.c:3984,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:3990,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_utils.c:3992,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/ndpi_utils.c:3992,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:3993,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:4006,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:4007,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:4008,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 4
    argNames:
    - ndpi_str
    - domain
    - out
    - out_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 4013
      start: 3924
    functionDepth: 2
    functionLinenumber: 3924
    functionLinenumberEnd: 4013
    functionName: ndpi_encode_domain
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached:
    - memcpy
    - fprintf
    - ndpi_min
    - ndpi_get_host_domain_suffix
    - ndpi_compress_str
    - snprintf
    - strlen
    - ndpi_domain_mapper_init
    linkageType: ''
    returnType: u_int
    signature: "u_int ndpi_encode_domain(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      char *domain, char *out, u_int out_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - flow
    - id
    argTypes:
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 4023
      start: 4017
    functionDepth: 0
    functionLinenumber: 4017
    functionLinenumberEnd: 4023
    functionName: is_ndpi_proto
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t is_ndpi_proto(struct ndpi_flow_struct *flow, u_int16_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_ndpi_proto
      Src: /src/ndpi/src/lib/ndpi_utils.c:4029,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/src/lib/ndpi_utils.c:4029,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4034,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4036,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4039,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4041,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/src/lib/ndpi_utils.c:4042,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/src/lib/ndpi_utils.c:4048,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4050,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4051,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4054,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/src/lib/ndpi_utils.c:4057,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4060,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4061,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4062,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_utils.c:4063,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - ndpi_str
    - flow
    - serializer
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 4069
      start: 4027
    functionDepth: 3
    functionLinenumber: 4027
    functionLinenumberEnd: 4069
    functionName: ndpi_serialize_flow_fingerprint
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - is_ndpi_proto
    - ndpi_get_host_domain
    - ndpi_serialize_string_string
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_serialize_flow_fingerprint(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t     struct ndpi_flow_struct *flow, ndpi_serializer *serializer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/ndpi/src/lib/ndpi_utils.c:4083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - out
    - out_len
    - in
    - in_len
    argTypes:
    - u_char*
    - u_int
    - u_char*
    - u_int
    constantsTouched: []
    func_position:
      end: 4087
      start: 4073
    functionDepth: 0
    functionLinenumber: 4073
    functionLinenumberEnd: 4087
    functionName: ndpi_hex2bin
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: u_int
    signature: u_int ndpi_hex2bin(u_char *out, u_int out_len, u_char* in, u_int in_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/ndpi/src/lib/ndpi_utils.c:4100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - out
    - out_len
    - in
    - in_len
    argTypes:
    - u_char*
    - u_int
    - u_char*
    - u_int
    constantsTouched: []
    func_position:
      end: 4105
      start: 4091
    functionDepth: 0
    functionLinenumber: 4091
    functionLinenumberEnd: 4105
    functionName: ndpi_bin2hex
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: u_int
    signature: u_int ndpi_bin2hex(u_char *out, u_int out_len, u_char* in, u_int in_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:4130,1
    - Dst: ndpi_hex2bin
      Src: /src/ndpi/src/lib/ndpi_utils.c:4137,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:4139,1
    - Dst: AES_init_ctx_iv
      Src: /src/ndpi/src/lib/ndpi_utils.c:4147,1
    - Dst: AES_CBC_encrypt_buffer
      Src: /src/ndpi/src/lib/ndpi_utils.c:4148,1
    - Dst: ndpi_base64_encode
      Src: /src/ndpi/src/lib/ndpi_utils.c:4150,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:4151,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_utils.c:4154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - cleartext_msg
    - cleartext_msg_len
    - encrypted_msg_len
    - encrypt_key
    argTypes:
    - char*
    - u_int16_t
    - u_int16_t*
    - u_char[]
    constantsTouched: []
    func_position:
      end: 4157
      start: 4115
    functionDepth: 1
    functionLinenumber: 4115
    functionLinenumberEnd: 4157
    functionName: ndpi_quick_encrypt
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_free
    - AES_init_ctx_iv
    - ndpi_base64_encode
    - ndpi_calloc
    - ndpi_hex2bin
    - AES_CBC_encrypt_buffer
    - strlen
    linkageType: ''
    returnType: char
    signature: "char * ndpi_quick_encrypt(const char *cleartext_msg,\n\t\t\t u_int16_t
      cleartext_msg_len,\n\t\t\t u_int16_t *encrypted_msg_len,\n\t\t\t u_char encrypt_key[64])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_hex2bin
      Src: /src/ndpi/src/lib/ndpi_utils.c:4180,1
    - Dst: ndpi_base64_decode
      Src: /src/ndpi/src/lib/ndpi_utils.c:4182,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:4186,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:4187,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:4193,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:4194,1
    - Dst: AES_init_ctx_iv
      Src: /src/ndpi/src/lib/ndpi_utils.c:4199,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:4200,1
    - Dst: AES_CBC_decrypt_buffer
      Src: /src/ndpi/src/lib/ndpi_utils.c:4201,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:4213,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - encrypted_msg
    - encrypted_msg_len
    - decrypted_msg_len
    - decrypt_key
    argTypes:
    - char*
    - u_int16_t
    - u_int16_t*
    - u_char[]
    constantsTouched: []
    func_position:
      end: 4216
      start: 4161
    functionDepth: 1
    functionLinenumber: 4161
    functionLinenumberEnd: 4216
    functionName: ndpi_quick_decrypt
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_free
    - AES_init_ctx_iv
    - AES_CBC_decrypt_buffer
    - ndpi_base64_decode
    - ndpi_hex2bin
    linkageType: ''
    returnType: char
    signature: "char * ndpi_quick_decrypt(const char *encrypted_msg,\n\t\t\t u_int16_t
      encrypted_msg_len,\n\t\t\t u_int16_t *decrypted_msg_len,\n\t\t\t u_char decrypt_key[64])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - os_hint
    argTypes:
    - ndpi_os
    constantsTouched: []
    func_position:
      end: 4233
      start: 4220
    functionDepth: 0
    functionLinenumber: 4220
    functionLinenumberEnd: 4233
    functionName: ndpi_print_os_hint
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_print_os_hint(ndpi_os os_hint)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:4242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 4246
      start: 4237
    functionDepth: 0
    functionLinenumber: 4237
    functionLinenumberEnd: 4246
    functionName: ndpi_strndup
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: char * ndpi_strndup(const char *s, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ptr
    - ptr_len
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 4268
      start: 4250
    functionDepth: 0
    functionLinenumber: 4250
    functionLinenumberEnd: 4268
    functionName: ndpi_strip_leading_trailing_spaces
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ndpi_strip_leading_trailing_spaces(char *ptr, int *ptr_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_utils.c:4274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_str
    - protoId
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 4278
      start: 4272
    functionDepth: 1
    functionLinenumber: 4272
    functionLinenumberEnd: 4278
    functionName: ndpi_find_protocol_qoe
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: ndpi_protocol_qoe_category_t
    signature: "ndpi_protocol_qoe_category_t ndpi_find_protocol_qoe(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t\t    u_int16_t protoId)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 149
    argCount: 2
    argNames:
    - payload_type
    - evs_payload_type
    argTypes:
    - u_int8_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 4370
      start: 4283
    functionDepth: 0
    functionLinenumber: 4283
    functionLinenumberEnd: 4370
    functionName: ndpi_rtp_payload_type2str
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_rtp_payload_type2str(u_int8_t payload_type, u_int32_t evs_payload_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - in
    - in_len
    - out
    - out_len
    argTypes:
    - u_char*
    - u_int
    - u_char*
    - u_int
    constantsTouched: []
    func_position:
      end: 4396
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4396
    functionName: ndpi_str_to_utf8
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_char
    signature: u_char * ndpi_str_to_utf8(u_char *in, u_int in_len, u_char *out, u_int
      out_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_valid_protoId
      Src: /src/ndpi/src/lib/ndpi_utils.c:4407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_str
    - proto_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 4411
      start: 4405
    functionDepth: 1
    functionLinenumber: 4405
    functionLinenumberEnd: 4411
    functionName: ndpi_is_master_only_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_is_valid_protoId
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_is_master_only_protocol(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t  u_int16_t proto_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_master_only_protocol
      Src: /src/ndpi/src/lib/ndpi_utils.c:4420,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_utils.c:4426,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/src/lib/ndpi_utils.c:4428,1
    - Dst: ndpi_is_master_only_protocol
      Src: /src/ndpi/src/lib/ndpi_utils.c:4436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ndpi_str
    - proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - ndpi_master_app_protocol*
    constantsTouched: []
    func_position:
      end: 4447
      start: 4415
    functionDepth: 3
    functionLinenumber: 4415
    functionLinenumberEnd: 4447
    functionName: ndpi_normalize_protocol
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 0
    functionsReached:
    - ndpi_get_proto_name
    - ndpi_is_master_only_protocol
    - NDPI_LOG_ERR
    linkageType: ''
    returnType: bool
    signature: "bool ndpi_normalize_protocol(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \    ndpi_master_app_protocol *proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:4455,1
    - Dst: howmanybits
      Src: /src/ndpi/src/lib/ndpi_utils.c:4455,1
    - Dst: howmanybits
      Src: /src/ndpi/src/lib/ndpi_utils.c:4459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - b
    - max_bits
    argTypes:
    - struct ndpi_bitmask*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 4461
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4461
    functionName: ndpi_bitmask_alloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_calloc
    - howmanybits
    linkageType: ''
    returnType: int
    signature: int ndpi_bitmask_alloc(struct ndpi_bitmask *b, u_int16_t max_bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:4466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ndpi_bitmask*
    constantsTouched: []
    func_position:
      end: 4469
      start: 4463
    functionDepth: 0
    functionLinenumber: 4463
    functionLinenumberEnd: 4469
    functionName: ndpi_bitmask_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmask_free(struct ndpi_bitmask *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - b
    - bit
    argTypes:
    - struct ndpi_bitmask*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 4475
      start: 4471
    functionDepth: 0
    functionLinenumber: 4471
    functionLinenumberEnd: 4475
    functionName: ndpi_bitmask_set
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmask_set(struct ndpi_bitmask *b, u_int16_t bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - b
    - bit
    argTypes:
    - struct ndpi_bitmask*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 4481
      start: 4477
    functionDepth: 0
    functionLinenumber: 4477
    functionLinenumberEnd: 4481
    functionName: ndpi_bitmask_clear
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmask_clear(struct ndpi_bitmask *b, u_int16_t bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - b
    - bit
    argTypes:
    - struct ndpi_bitmask*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 4488
      start: 4483
    functionDepth: 0
    functionLinenumber: 4483
    functionLinenumberEnd: 4488
    functionName: ndpi_bitmask_is_set
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_bitmask_is_set(const struct ndpi_bitmask *b, u_int16_t bit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_utils.c:4493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ndpi_bitmask*
    constantsTouched: []
    func_position:
      end: 4494
      start: 4490
    functionDepth: 0
    functionLinenumber: 4490
    functionLinenumberEnd: 4494
    functionName: ndpi_bitmask_set_all
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmask_set_all(struct ndpi_bitmask *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_utils.c:4499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ndpi_bitmask*
    constantsTouched: []
    func_position:
      end: 4500
      start: 4496
    functionDepth: 0
    functionLinenumber: 4496
    functionLinenumberEnd: 4500
    functionName: ndpi_bitmask_reset
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmask_reset(struct ndpi_bitmask *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:4508,1
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/src/lib/ndpi_utils.c:4511,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_utils.c:4512,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_utils.c:4515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ndpi_bitmask*
    constantsTouched: []
    func_position:
      end: 4517
      start: 4502
    functionDepth: 1
    functionLinenumber: 4502
    functionLinenumberEnd: 4517
    functionName: ndpi_bitmask_clone
    functionSourceFile: /src/ndpi/src/lib/ndpi_utils.c
    functionUses: 1
    functionsReached:
    - ndpi_calloc
    - ndpi_bitmask_alloc
    - memcpy
    - ndpi_free
    linkageType: ''
    returnType: struct ndpi_bitmask
    signature: struct ndpi_bitmask *ndpi_bitmask_clone(const struct ndpi_bitmask *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/ndpi/src/lib/ndpi_serializer.c:54,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/ndpi_serializer.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: ndpi_htonll
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_htonll(u_int64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_serializer.c:67,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_serializer.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: ndpi_ntohll
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_ntohll(u_int64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/ndpi_serializer.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - str
    - str_len
    argTypes:
    - char*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: ndpi_is_number
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_isdigit
    linkageType: ''
    returnType: int
    signature: int ndpi_is_number(const char *str, u_int32_t str_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 58
    argCount: 4
    argNames:
    - src
    - src_len
    - dst
    - dst_max_len
    argTypes:
    - char*
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 163
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 163
    functionName: ndpi_json_string_escape
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_json_string_escape(const char *src, int src_len, char *dst,
      int dst_max_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 192
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 192
    functionName: ndpi_reset_serializer
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: void
    signature: void ndpi_reset_serializer(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: ndpi_serializer_skip_header
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_serializer_skip_header(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/ndpi_serializer.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - buffer_size
    argTypes:
    - ndpi_private_serializer_buffer*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: ndpi_init_serializer_buffer
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    linkageType: ''
    returnType: int
    signature: int ndpi_init_serializer_buffer(ndpi_private_serializer_buffer *buffer,
      u_int32_t buffer_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/ndpi_serializer.c:220,1
    - Dst: ndpi_init_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:233,1
    - Dst: ndpi_init_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:240,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:241,1
    - Dst: ndpi_reset_serializer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - _serializer
    - fmt
    - buffer_size
    argTypes:
    - ndpi_serializer*
    - ndpi_serialization_format
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 256
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 256
    functionName: ndpi_init_serializer_ll
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_reset_serializer
    - memset
    - ndpi_term_serializer
    - ndpi_init_serializer_buffer
    linkageType: ''
    returnType: int
    signature: "int ndpi_init_serializer_ll(ndpi_serializer *_serializer,\n\t\t\t
      \   ndpi_serialization_format fmt,\n\t\t\t    u_int32_t buffer_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_serializer_ll
      Src: /src/ndpi/src/lib/ndpi_serializer.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _serializer
    - fmt
    argTypes:
    - ndpi_serializer*
    - ndpi_serialization_format
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: ndpi_init_serializer
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 3
    functionsReached:
    - ndpi_init_serializer_ll
    linkageType: ''
    returnType: int
    signature: "int ndpi_init_serializer(ndpi_serializer *_serializer,\n\t\t\t ndpi_serialization_format
      fmt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_realloc
      Src: /src/ndpi/src/lib/ndpi_serializer.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - buffer
    - min_len
    argTypes:
    - ndpi_private_serializer_buffer*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 292
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 292
    functionName: ndpi_extend_serializer_buffer
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_realloc
    linkageType: ''
    returnType: int
    signature: int ndpi_extend_serializer_buffer(ndpi_private_serializer_buffer *buffer,
      u_int32_t min_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - serializer
    - needed
    argTypes:
    - ndpi_private_serializer*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: ndpi_serializer_check_header_room
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_extend_serializer_buffer
    linkageType: ''
    returnType: int
    signature: int ndpi_serializer_check_header_room(ndpi_private_serializer *serializer,
      u_int32_t needed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serializer_check_header_room
      Src: /src/ndpi/src/lib/ndpi_serializer.c:316,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - serializer
    - key
    argTypes:
    - ndpi_private_serializer*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: ndpi_serializer_header_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    - ndpi_serializer_check_header_room
    linkageType: ''
    returnType: int
    signature: int ndpi_serializer_header_uint32(ndpi_private_serializer *serializer,
      u_int32_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serializer_check_header_room
      Src: /src/ndpi/src/lib/ndpi_serializer.c:335,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:342,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - serializer
    - key
    - klen
    argTypes:
    - ndpi_private_serializer*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 354
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 354
    functionName: ndpi_serializer_header_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_serializer_check_header_room
    linkageType: ''
    returnType: int
    signature: int ndpi_serializer_header_string(ndpi_private_serializer *serializer,
      const char *key, u_int16_t klen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - _serializer
    - buffer_len
    argTypes:
    - ndpi_serializer*
    - u_int32_t*
    constantsTouched: []
    func_position:
      end: 374
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 374
    functionName: ndpi_serializer_get_buffer
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_serializer_get_buffer(ndpi_serializer *_serializer, u_int32_t
      *buffer_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: ndpi_serializer_get_buffer_len
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_serializer_get_buffer_len(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: ndpi_serializer_get_internal_buffer_size
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_serializer_get_internal_buffer_size(ndpi_serializer
      *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - _serializer
    - l
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 402
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 402
    functionName: ndpi_serializer_set_buffer_len
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_serializer_set_buffer_len(ndpi_serializer *_serializer, u_int32_t
      l)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - _serializer
    - buffer_len
    argTypes:
    - ndpi_serializer*
    - u_int32_t*
    constantsTouched: []
    func_position:
      end: 423
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 423
    functionName: ndpi_serializer_get_header
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ndpi_serializer_get_header(ndpi_serializer *_serializer, u_int32_t
      *buffer_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: ndpi_serializer_get_format
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ndpi_serialization_format
    signature: ndpi_serialization_format ndpi_serializer_get_format(ndpi_serializer
      *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _serializer
    - separator
    argTypes:
    - ndpi_serializer*
    - char
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: ndpi_serializer_set_csv_separator
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_serializer_set_csv_separator(ndpi_serializer *_serializer,
      char separator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_serializer.c:447,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_serializer.c:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 457
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 457
    functionName: ndpi_term_serializer
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 4
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_term_serializer(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - serializer
    - s
    argTypes:
    - ndpi_private_serializer*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 467
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 467
    functionName: ndpi_serialize_single_uint8
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_single_uint8(ndpi_private_serializer *serializer,\n\t\t\t\t\t
      \      u_int8_t s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_serializer.c:473,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - serializer
    - s
    argTypes:
    - ndpi_private_serializer*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 477
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 477
    functionName: ndpi_serialize_single_uint16
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_single_uint16(ndpi_private_serializer *serializer,\n\t\t\t\t\t\tu_int16_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/ndpi/src/lib/ndpi_serializer.c:483,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - serializer
    - s
    argTypes:
    - ndpi_private_serializer*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: ndpi_serialize_single_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - htonl
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_single_uint32(ndpi_private_serializer *serializer,\n\t\t\t\t\t\tu_int32_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_htonll
      Src: /src/ndpi/src/lib/ndpi_serializer.c:493,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - serializer
    - s
    argTypes:
    - ndpi_private_serializer*
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: ndpi_serialize_single_uint64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_htonll
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_single_uint64(ndpi_private_serializer *serializer,\n\t\t\t\t\t\tu_int64_t
      s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - serializer
    - s
    argTypes:
    - ndpi_private_serializer*
    - float
    constantsTouched: []
    func_position:
      end: 506
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: ndpi_serialize_single_float
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_single_float(ndpi_private_serializer *serializer,\n\t\t\t\t\t
      \      float s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - serializer
    - s
    argTypes:
    - ndpi_private_serializer*
    - double
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: ndpi_serialize_single_double
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_single_double(ndpi_private_serializer *serializer,\n
      \                          double s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_serializer.c:523,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:525,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - serializer
    - s
    - slen
    argTypes:
    - ndpi_private_serializer*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 532
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 532
    functionName: ndpi_serialize_single_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_serialize_single_string(ndpi_private_serializer *serializer,\n\t\t\t\t\t\tconst
      char *s, u_int16_t slen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 539
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 539
    functionName: ndpi_deserialize_single_uint8
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_uint8(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\t
      u_int32_t offset, u_int8_t *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_serializer.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: ndpi_deserialize_single_uint16
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_uint16(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\t
      \ u_int32_t offset, u_int16_t *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_serializer.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - u_int32_t*
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: ndpi_deserialize_single_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_uint32(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\t
      \ u_int32_t offset, u_int32_t *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - int8_t*
    constantsTouched: []
    func_position:
      end: 560
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 560
    functionName: ndpi_deserialize_single_int8
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_int8(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\tu_int32_t
      offset, int8_t *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_serializer.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - int16_t*
    constantsTouched: []
    func_position:
      end: 567
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 567
    functionName: ndpi_deserialize_single_int16
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_int16(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\t
      u_int32_t offset, int16_t *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_serializer.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - int32_t*
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: ndpi_deserialize_single_int32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_int32(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\t
      u_int32_t offset, int32_t *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/ndpi_serializer.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - u_int64_t*
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: ndpi_deserialize_single_uint64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_ntohll
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_uint64(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\t
      \ u_int32_t offset, u_int64_t *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/ndpi_serializer.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - int64_t*
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: ndpi_deserialize_single_int64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_ntohll
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_int64(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\t
      u_int32_t offset, int64_t *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - float*
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: ndpi_deserialize_single_float
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_float(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\t
      u_int32_t offset, float *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - deserializer
    - offset
    - s
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - double*
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: ndpi_deserialize_single_double
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_double(ndpi_private_deserializer *deserializer,\n
      \                        u_int32_t offset, double *s)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_serializer.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - deserializer
    - offset
    - v
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    - ndpi_string*
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    functionName: ndpi_deserialize_single_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: void
    signature: "void ndpi_deserialize_single_string(ndpi_private_deserializer *deserializer,\n\t\t\t\t\t\t
      \ u_int32_t offset, ndpi_string *v)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:646,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:661,1
    - Dst: ndpi_serialize_end_of_record
      Src: /src/ndpi/src/lib/ndpi_serializer.c:671,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - _serializer
    - record
    - record_len
    argTypes:
    - ndpi_serializer*
    - u_char*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 674
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 674
    functionName: ndpi_serialize_raw_record
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_end_of_record
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_raw_record(ndpi_serializer *_serializer,\n\t\t\t
      \     u_char *record, u_int32_t record_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:688,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:708,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 721
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 721
    functionName: ndpi_serialize_end_of_record
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 2
    functionsReached:
    - ndpi_snprintf
    - ndpi_extend_serializer_buffer
    linkageType: ''
    returnType: int
    signature: int ndpi_serialize_end_of_record(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - serializer
    argTypes:
    - ndpi_private_serializer*
    constantsTouched: []
    func_position:
      end: 737
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 737
    functionName: ndpi_serialize_csv_pre
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_serialize_csv_pre(ndpi_private_serializer *serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 778
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 778
    functionName: ndpi_serialize_json_pre
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_serialize_json_pre(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 811
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 811
    functionName: ndpi_serialize_json_post
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_serialize_json_post(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_single_uint8
      Src: /src/ndpi/src/lib/ndpi_serializer.c:819,1
    - Dst: ndpi_serialize_single_uint16
      Src: /src/ndpi/src/lib/ndpi_serializer.c:822,1
    - Dst: ndpi_serialize_single_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - serializer
    - key
    argTypes:
    - ndpi_private_serializer*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 830
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 830
    functionName: ndpi_serialize_key_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_single_uint32
    - ndpi_serialize_single_uint16
    - ndpi_serialize_single_uint8
    linkageType: ''
    returnType: ndpi_serialization_type
    signature: ndpi_serialization_type ndpi_serialize_key_uint32(ndpi_private_serializer
      *serializer, u_int32_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:848,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:854,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:858,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:867,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:874,1
    - Dst: ndpi_serializer_header_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:877,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:878,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:880,1
    - Dst: ndpi_serialize_key_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:891,1
    - Dst: ndpi_serialize_single_uint8
      Src: /src/ndpi/src/lib/ndpi_serializer.c:895,1
    - Dst: ndpi_serialize_single_uint16
      Src: /src/ndpi/src/lib/ndpi_serializer.c:898,1
    - Dst: ndpi_serialize_single_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:901,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 910
      start: 834
    functionDepth: 4
    functionLinenumber: 834
    functionLinenumberEnd: 910
    functionName: ndpi_serialize_uint32_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_serialize_key_uint32
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_single_uint32
    - ndpi_serialize_single_uint8
    - ndpi_serializer_header_uint32
    - ndpi_serialize_json_post
    - ndpi_serialize_single_uint16
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_uint32_uint32(ndpi_serializer *_serializer,\n\t\t\t\t
      u_int32_t key, u_int32_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:928,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:934,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:938,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:947,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:954,1
    - Dst: ndpi_serializer_header_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:957,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:958,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:960,1
    - Dst: ndpi_serialize_uint32_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:968,1
    - Dst: ndpi_serialize_key_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:974,1
    - Dst: ndpi_serialize_single_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:977,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 986
      start: 914
    functionDepth: 5
    functionLinenumber: 914
    functionLinenumberEnd: 986
    functionName: ndpi_serialize_uint32_uint64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_key_uint32
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_uint32_uint32
    - ndpi_serialize_single_uint64
    - ndpi_serializer_header_uint32
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_uint32_uint64(ndpi_serializer *_serializer,\n\t\t\t\t
      u_int32_t key, u_int64_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1004,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1010,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1014,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1023,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1030,1
    - Dst: ndpi_serializer_header_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1033,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1034,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1036,1
    - Dst: ndpi_serialize_key_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1047,1
    - Dst: ndpi_serialize_single_uint8
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1051,1
    - Dst: ndpi_serialize_single_uint16
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1054,1
    - Dst: ndpi_serialize_single_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1057,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1066
      start: 990
    functionDepth: 4
    functionLinenumber: 990
    functionLinenumberEnd: 1066
    functionName: ndpi_serialize_uint32_int32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_key_uint32
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_single_uint32
    - ndpi_serialize_single_uint8
    - ndpi_serializer_header_uint32
    - ndpi_serialize_json_post
    - ndpi_serialize_single_uint16
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_uint32_int32(ndpi_serializer *_serializer,\n\t\t\t\tu_int32_t
      key, int32_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1084,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1090,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1094,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1103,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1110,1
    - Dst: ndpi_serializer_header_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1113,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1114,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1116,1
    - Dst: ndpi_serialize_uint32_int32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1125,1
    - Dst: ndpi_serialize_key_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1131,1
    - Dst: ndpi_serialize_single_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1134,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 1143
      start: 1070
    functionDepth: 5
    functionLinenumber: 1070
    functionLinenumberEnd: 1143
    functionName: ndpi_serialize_uint32_int64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_key_uint32
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_single_uint64
    - ndpi_serializer_header_uint32
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_serialize_uint32_int32
    - ndpi_snprintf
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_uint32_int64(ndpi_serializer *_serializer,\n\t\t\t\tu_int32_t
      key, int64_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1163,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1169,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1173,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1180,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1185,1
    - Dst: ndpi_serializer_header_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1188,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1189,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1191,1
    - Dst: ndpi_serialize_key_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1201,1
    - Dst: ndpi_serialize_single_float
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1204,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - _serializer
    - key
    - value
    - format
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    - float
    - char*
    constantsTouched: []
    func_position:
      end: 1212
      start: 1147
    functionDepth: 4
    functionLinenumber: 1147
    functionLinenumberEnd: 1212
    functionName: ndpi_serialize_uint32_float
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_key_uint32
    - ndpi_extend_serializer_buffer
    - ndpi_serializer_header_uint32
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_serialize_single_float
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_uint32_float(ndpi_serializer *_serializer,\n\t\t\t\tu_int32_t
      key, float value,\n                                const char *format /* e.f.
      \"%.2f\" */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1232,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1238,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1242,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1249,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1254,1
    - Dst: ndpi_serializer_header_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1257,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1258,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1260,1
    - Dst: ndpi_serialize_key_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1273,1
    - Dst: ndpi_serialize_single_float
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1276,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 4
    argNames:
    - _serializer
    - key
    - value
    - format
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    - double
    - char*
    constantsTouched: []
    func_position:
      end: 1285
      start: 1216
    functionDepth: 4
    functionLinenumber: 1216
    functionLinenumberEnd: 1285
    functionName: ndpi_serialize_uint32_double
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_key_uint32
    - ndpi_extend_serializer_buffer
    - ndpi_serializer_header_uint32
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_serialize_single_float
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_uint32_double(ndpi_serializer *_serializer,\n\t\t\t\t
      u_int32_t key, double value,\n                                 const char *format
      /* e.f. \"%.2f\" */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1304,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1310,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1314,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1321,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1324,1
    - Dst: ndpi_serializer_header_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1327,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1328,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1330,1
    - Dst: ndpi_serialize_key_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1341,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1344,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - _serializer
    - key
    - value
    - slen
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1352
      start: 1289
    functionDepth: 4
    functionLinenumber: 1289
    functionLinenumberEnd: 1352
    functionName: ndpi_serialize_uint32_binary
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_key_uint32
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_single_string
    - ndpi_serializer_header_uint32
    - ndpi_serialize_json_post
    - ndpi_snprintf
    - ndpi_serialize_json_pre
    - ndpi_json_string_escape
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_uint32_binary(ndpi_serializer *_serializer,\n\t\t\t\t
      u_int32_t key, const char *value, u_int16_t slen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_uint32_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1359,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _serializer
    - key
    - _value
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 1360
      start: 1356
    functionDepth: 5
    functionLinenumber: 1356
    functionLinenumberEnd: 1360
    functionName: ndpi_serialize_uint32_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 3
    functionsReached:
    - ndpi_serialize_uint32_binary
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_uint32_string(ndpi_serializer *_serializer,\n\t\t\t\t
      u_int32_t key, const char *_value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1376,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1382,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1386,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1395,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1402,1
    - Dst: ndpi_serializer_header_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1405,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1406,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1408,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 1418
      start: 1364
    functionDepth: 4
    functionLinenumber: 1364
    functionLinenumberEnd: 1418
    functionName: ndpi_serialize_uint32_boolean
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_extend_serializer_buffer
    - ndpi_serializer_header_uint32
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_uint32_boolean(ndpi_serializer *_serializer,\n\t\t\t\t
      \ u_int32_t key, u_int8_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_number
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1431,1
    - Dst: ndpi_serialize_uint32_int32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1432,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1432,1
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1445,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1451,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1455,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1462,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1468,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1471,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1472,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1474,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1483,1
    - Dst: ndpi_serialize_single_uint8
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1484,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1487,1
    - Dst: ndpi_serialize_single_uint16
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1488,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1491,1
    - Dst: ndpi_serialize_single_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1492,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 4
    argNames:
    - _serializer
    - key
    - klen
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1499
      start: 1422
    functionDepth: 5
    functionLinenumber: 1422
    functionLinenumberEnd: 1499
    functionName: ndpi_serialize_binary_int32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_header_string
    - ndpi_extend_serializer_buffer
    - atoi
    - ndpi_serialize_single_string
    - ndpi_serialize_single_uint32
    - ndpi_is_number
    - ndpi_serialize_single_uint8
    - ndpi_serialize_json_post
    - ndpi_serialize_single_uint16
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_serialize_uint32_int32
    - ndpi_json_string_escape
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_binary_int32(ndpi_serializer *_serializer,\n\t\t\t
      \       const char *key, u_int16_t klen,\n\t\t\t        int32_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1515,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1520,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1520,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1524,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1527,1
    - Dst: ndpi_serialize_binary_int32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1538,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1538,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - int32_t
    constantsTouched: []
    func_position:
      end: 1539
      start: 1503
    functionDepth: 6
    functionLinenumber: 1503
    functionLinenumberEnd: 1539
    functionName: ndpi_serialize_string_int32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_header_string
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_binary_int32
    - ndpi_snprintf
    - strlen
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_int32(ndpi_serializer *_serializer,\n\t\t\t\tconst
      char *key, int32_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_number
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1552,1
    - Dst: ndpi_serialize_uint32_int64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1553,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1553,1
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1566,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1572,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1576,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1584,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1591,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1594,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1595,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1597,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1604,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1607,1
    - Dst: ndpi_serialize_single_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1608,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 4
    argNames:
    - _serializer
    - key
    - klen
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    - int64_t
    constantsTouched: []
    func_position:
      end: 1614
      start: 1543
    functionDepth: 7
    functionLinenumber: 1543
    functionLinenumberEnd: 1614
    functionName: ndpi_serialize_binary_int64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_uint32_int64
    - ndpi_serializer_header_string
    - ndpi_extend_serializer_buffer
    - atoi
    - ndpi_serialize_single_string
    - ndpi_serialize_single_uint64
    - ndpi_is_number
    - ndpi_serialize_json_post
    - ndpi_serialize_string_int32
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_json_string_escape
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_binary_int64(ndpi_serializer *_serializer,\n\t\t\t\tconst
      char *key, u_int16_t klen,\n\t\t\t\tint64_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_binary_int64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1620,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - int64_t
    constantsTouched: []
    func_position:
      end: 1621
      start: 1618
    functionDepth: 8
    functionLinenumber: 1618
    functionLinenumberEnd: 1621
    functionName: ndpi_serialize_string_int64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - strlen
    - ndpi_serialize_binary_int64
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_int64(ndpi_serializer *_serializer,\n\t\t\t\tconst
      char *key, int64_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1639,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1640,1
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1643,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1650,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1654,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1656,1
    - Dst: ndpi_is_number
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1663,1
    - Dst: ndpi_serialize_uint32_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1664,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1664,1
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1676,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1682,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1686,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1694,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1701,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1705,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1706,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1708,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1718,1
    - Dst: ndpi_serialize_single_uint8
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1719,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1722,1
    - Dst: ndpi_serialize_single_uint16
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1723,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1726,1
    - Dst: ndpi_serialize_single_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1727,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 4
    argNames:
    - _serializer
    - key
    - klen
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 1733
      start: 1625
    functionDepth: 5
    functionLinenumber: 1625
    functionLinenumberEnd: 1733
    functionName: ndpi_serialize_binary_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_header_string
    - ndpi_extend_serializer_buffer
    - memcpy
    - atoi
    - ndpi_serialize_single_string
    - ndpi_serialize_uint32_uint32
    - ndpi_is_number
    - ndpi_serialize_single_uint8
    - ndpi_json_string_escape
    - ndpi_serialize_single_uint32
    - ndpi_serialize_json_post
    - ndpi_serialize_single_uint16
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - strlen
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_binary_uint32(ndpi_serializer *_serializer,\n\t\t\t\tconst
      char *key, u_int16_t klen, u_int32_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_binary_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1739,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 1740
      start: 1737
    functionDepth: 6
    functionLinenumber: 1737
    functionLinenumberEnd: 1740
    functionName: ndpi_serialize_string_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 6
    functionsReached:
    - ndpi_serialize_binary_uint32
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_uint32(ndpi_serializer *_serializer,\n\t\t\t\t
      const char *key, u_int32_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1755,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1759,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - _serializer
    - key
    - value
    - format
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 1762
      start: 1744
    functionDepth: 7
    functionLinenumber: 1744
    functionLinenumberEnd: 1762
    functionName: ndpi_serialize_string_uint32_format
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_string_uint32
    - ndpi_serialize_string_string
    - ndpi_snprintf
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_uint32_format(ndpi_serializer *_serializer,\n\t\t\t\t\tconst
      char *key, u_int32_t value,\n\t\t\t\t\tconst char *format)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_number
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1775,1
    - Dst: ndpi_serialize_uint32_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1776,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1776,1
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1789,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1795,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1799,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1807,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1814,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1817,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1818,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1820,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1828,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1831,1
    - Dst: ndpi_serialize_single_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1832,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 4
    argNames:
    - _serializer
    - key
    - klen
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 1838
      start: 1766
    functionDepth: 7
    functionLinenumber: 1766
    functionLinenumberEnd: 1838
    functionName: ndpi_serialize_binary_uint64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_header_string
    - ndpi_extend_serializer_buffer
    - atoi
    - ndpi_serialize_single_string
    - ndpi_serialize_single_uint64
    - ndpi_is_number
    - ndpi_serialize_json_post
    - ndpi_serialize_uint32_uint64
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_serialize_string_uint32
    - ndpi_json_string_escape
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_binary_uint64(ndpi_serializer *_serializer,\n\t\t\t\tconst
      char *key, u_int16_t klen,\n\t\t\t\tu_int64_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_binary_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1844,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 1845
      start: 1842
    functionDepth: 8
    functionLinenumber: 1842
    functionLinenumberEnd: 1845
    functionName: ndpi_serialize_string_uint64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_binary_uint64
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_uint64(ndpi_serializer *_serializer,\n\t\t\t\t
      const char *key, u_int64_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_number
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1860,1
    - Dst: ndpi_serialize_uint32_float
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1861,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1861,1
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1875,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1881,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1885,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1892,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1897,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1900,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1901,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1903,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1910,1
    - Dst: ndpi_serialize_single_float
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1911,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 5
    argNames:
    - _serializer
    - key
    - klen
    - value
    - format
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    - float
    - char*
    constantsTouched: []
    func_position:
      end: 1916
      start: 1849
    functionDepth: 5
    functionLinenumber: 1849
    functionLinenumberEnd: 1916
    functionName: ndpi_serialize_binary_float
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_header_string
    - ndpi_extend_serializer_buffer
    - atoi
    - ndpi_serialize_single_string
    - ndpi_serialize_uint32_float
    - ndpi_is_number
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_json_string_escape
    - ndpi_serialize_single_float
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_binary_float(ndpi_serializer *_serializer,\n\t\t\t
      \       const char *key,\n\t\t\t        u_int16_t klen,\n\t\t\t        float
      value,\n\t\t\t        const char *format /* e.f. \"%.2f\" */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1942,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1948,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1952,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1959,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1964,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1967,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1968,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1970,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1980,1
    - Dst: ndpi_serialize_single_double
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1981,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 5
    argNames:
    - _serializer
    - key
    - klen
    - value
    - format
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    - double
    - char*
    constantsTouched: []
    func_position:
      end: 1987
      start: 1921
    functionDepth: 4
    functionLinenumber: 1921
    functionLinenumberEnd: 1987
    functionName: ndpi_serialize_binary_double
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_header_string
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_single_string
    - ndpi_json_string_escape
    - ndpi_serialize_json_post
    - ndpi_serialize_single_double
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_binary_double(ndpi_serializer *_serializer,\n                    const
      char *key,\n                    u_int16_t klen,\n                    double
      value,\n                    const char *format /* e.f. \"%.2f\" */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_binary_float
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1995,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:1995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _serializer
    - key
    - value
    - format
    argTypes:
    - ndpi_serializer*
    - char*
    - float
    - char*
    constantsTouched: []
    func_position:
      end: 1996
      start: 1991
    functionDepth: 6
    functionLinenumber: 1991
    functionLinenumberEnd: 1996
    functionName: ndpi_serialize_string_float
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 3
    functionsReached:
    - strlen
    - ndpi_serialize_binary_float
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_float(ndpi_serializer *_serializer,\n\t\t\t\tconst
      char *key,\n\t\t\t\tfloat value,\n\t\t\t\tconst char *format /* e.f. \"%.2f\"
      */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_binary_double
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2005,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _serializer
    - key
    - value
    - format
    argTypes:
    - ndpi_serializer*
    - char*
    - double
    - char*
    constantsTouched: []
    func_position:
      end: 2006
      start: 2000
    functionDepth: 5
    functionLinenumber: 2000
    functionLinenumberEnd: 2006
    functionName: ndpi_serialize_string_double
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 2
    functionsReached:
    - strlen
    - ndpi_serialize_binary_double
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_double(ndpi_serializer *_serializer,\n                const
      char *key,\n                double value,\n                const char *format
      /* e.f. \"%.2f\" */)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2032,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2038,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2042,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2050,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2053,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2057,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2060,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2061,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2063,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2069,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2070,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 6
    argNames:
    - _serializer
    - key
    - klen
    - value
    - vlen
    - escape
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    - char*
    - u_int16_t
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 2075
      start: 2011
    functionDepth: 4
    functionLinenumber: 2011
    functionLinenumberEnd: 2075
    functionName: ndpi_serialize_binary_raw
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_header_string
    - memcpy
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_single_string
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_json_string_escape
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_binary_raw(ndpi_serializer *_serializer,\n\t\t\t\t\tconst
      char *key,\n\t\t\t\t\tu_int16_t klen,\n\t\t\t\t\tconst char *value,\n\t\t\t\t\tu_int16_t
      vlen,\n\t\t\t\t\tu_int8_t escape)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_number
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2088,1
    - Dst: ndpi_serialize_uint32_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2089,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2089,1
    - Dst: ndpi_serialize_binary_raw
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - _serializer
    - key
    - klen
    - _value
    - vlen
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2093
      start: 2080
    functionDepth: 5
    functionLinenumber: 2080
    functionLinenumberEnd: 2093
    functionName: ndpi_serialize_binary_binary
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_uint32_binary
    - ndpi_is_number
    - atoi
    - ndpi_serialize_binary_raw
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_binary_binary(ndpi_serializer *_serializer,\n\t\t\t\t
      const char *key,\n\t\t\t\t u_int16_t klen,\n\t\t\t\t const char *_value,\n\t\t\t\t
      u_int16_t vlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_binary_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2101,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _serializer
    - key
    - _value
    - vlen
    argTypes:
    - ndpi_serializer*
    - char*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2102
      start: 2098
    functionDepth: 6
    functionLinenumber: 2098
    functionLinenumberEnd: 2102
    functionName: ndpi_serialize_string_binary
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - strlen
    - ndpi_serialize_binary_binary
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_binary(ndpi_serializer *_serializer,\n\t\t\t\t
      const char *key, const char *_value,\n\t\t\t\t u_int16_t vlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2119,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2126,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2126,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2130,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2133,1
    - Dst: ndpi_serialize_binary_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2138,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - _serializer
    - key
    - value
    - value_len
    argTypes:
    - ndpi_serializer*
    - char*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2140
      start: 2107
    functionDepth: 6
    functionLinenumber: 2107
    functionLinenumberEnd: 2140
    functionName: ndpi_serialize_string_string_len
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_header_string
    - memcpy
    - ndpi_extend_serializer_buffer
    - strlen
    - ndpi_serialize_csv_pre
    - ndpi_serialize_binary_binary
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_string_len(ndpi_serializer *_serializer,\n\t\t\t\t
      \    const char *key,\n\t\t\t\t     const char *value, u_int16_t value_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_string_string_len
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2149,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _serializer
    - key
    - _value
    argTypes:
    - ndpi_serializer*
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 2150
      start: 2145
    functionDepth: 7
    functionLinenumber: 2145
    functionLinenumberEnd: 2150
    functionName: ndpi_serialize_string_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 8
    functionsReached:
    - strlen
    - ndpi_serialize_string_string_len
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_string(ndpi_serializer *_serializer,\n\t\t\t\t
      const char *key, const char *_value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_binary_raw
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2157,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - _serializer
    - key
    - _value
    - vlen
    argTypes:
    - ndpi_serializer*
    - char*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2158
      start: 2155
    functionDepth: 5
    functionLinenumber: 2155
    functionLinenumberEnd: 2158
    functionName: ndpi_serialize_string_raw
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - strlen
    - ndpi_serialize_binary_raw
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_raw(ndpi_serializer *_serializer,\n\t\t\t
      \     const char *key, const char *_value, u_int16_t vlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_number
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2174,1
    - Dst: ndpi_serialize_uint32_boolean
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2175,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2175,1
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2181,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2187,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2191,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2198,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2205,1
    - Dst: ndpi_serializer_header_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2208,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2208,1
    - Dst: ndpi_serialize_csv_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2209,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2211,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - _serializer
    - key
    - klen
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 2220
      start: 2162
    functionDepth: 5
    functionLinenumber: 2162
    functionLinenumberEnd: 2220
    functionName: ndpi_serialize_binary_boolean
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_header_string
    - ndpi_extend_serializer_buffer
    - atoi
    - ndpi_is_number
    - ndpi_serialize_uint32_boolean
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    - ndpi_json_string_escape
    - strlen
    - ndpi_serialize_csv_pre
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_binary_boolean(ndpi_serializer *_serializer,\n\t\t\t\t
      \ const char *key, u_int16_t klen, u_int8_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_binary_boolean
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2226,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _serializer
    - key
    - value
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 2227
      start: 2224
    functionDepth: 6
    functionLinenumber: 2224
    functionLinenumberEnd: 2227
    functionName: ndpi_serialize_string_boolean
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - strlen
    - ndpi_serialize_binary_boolean
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_string_boolean(ndpi_serializer *_serializer,\n\t\t\t\t
      \ const char *key, u_int8_t value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2245,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2251,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2254,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2259,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2266,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - _serializer
    - key
    - klen
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2274
      start: 2231
    functionDepth: 2
    functionLinenumber: 2231
    functionLinenumberEnd: 2274
    functionName: ndpi_serialize_start_of_list_binary
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_single_string
    - ndpi_json_string_escape
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_start_of_list_binary(ndpi_serializer *_serializer,\n\t\t\t\t\tconst
      char *key, u_int16_t klen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2282,1
    - Dst: ndpi_serialize_start_of_list_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _serializer
    - _key
    argTypes:
    - ndpi_serializer*
    - char*
    constantsTouched: []
    func_position:
      end: 2285
      start: 2279
    functionDepth: 3
    functionLinenumber: 2279
    functionLinenumberEnd: 2285
    functionName: ndpi_serialize_start_of_list
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 2
    functionsReached:
    - ndpi_serialize_start_of_list_binary
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_start_of_list(ndpi_serializer *_serializer,\n\t\t\t\t
      const char *_key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 2309
      start: 2290
    functionDepth: 0
    functionLinenumber: 2290
    functionLinenumberEnd: 2309
    functionName: ndpi_serialize_end_of_list
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_serialize_end_of_list(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2328,1
    - Dst: ndpi_serialize_json_pre
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2334,1
    - Dst: ndpi_json_string_escape
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2337,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2340,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2345,1
    - Dst: ndpi_serialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2351,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - _serializer
    - key
    - klen
    argTypes:
    - ndpi_serializer*
    - char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2355
      start: 2314
    functionDepth: 2
    functionLinenumber: 2314
    functionLinenumberEnd: 2355
    functionName: ndpi_serialize_start_of_block_binary
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_extend_serializer_buffer
    - ndpi_serialize_single_string
    - ndpi_json_string_escape
    - ndpi_serialize_json_post
    - ndpi_serialize_json_pre
    - ndpi_snprintf
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_start_of_block_binary(ndpi_serializer *_serializer,\n\t\t\t\t
      \        const char *key, u_int16_t klen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2363,1
    - Dst: ndpi_serialize_start_of_block_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _serializer
    - _key
    argTypes:
    - ndpi_serializer*
    - char*
    constantsTouched: []
    func_position:
      end: 2366
      start: 2360
    functionDepth: 3
    functionLinenumber: 2360
    functionLinenumberEnd: 2366
    functionName: ndpi_serialize_start_of_block
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 5
    functionsReached:
    - strlen
    - ndpi_serialize_start_of_block_binary
    linkageType: ''
    returnType: int
    signature: "int ndpi_serialize_start_of_block(ndpi_serializer *_serializer,\n\t\t\t\t
      \ const char *_key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_start_of_block_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - _serializer
    - key
    argTypes:
    - ndpi_serializer*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2381
      start: 2371
    functionDepth: 3
    functionLinenumber: 2371
    functionLinenumberEnd: 2381
    functionName: ndpi_serialize_start_of_block_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_serialize_start_of_block_binary
    linkageType: ''
    returnType: int
    signature: int ndpi_serialize_start_of_block_uint32(ndpi_serializer *_serializer,
      u_int32_t key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2398,1
    - Dst: ndpi_serialize_json_post
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2410,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 2417
      start: 2386
    functionDepth: 2
    functionLinenumber: 2386
    functionLinenumberEnd: 2417
    functionName: ndpi_serialize_end_of_block
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 5
    functionsReached:
    - ndpi_serialize_json_post
    - ndpi_extend_serializer_buffer
    linkageType: ''
    returnType: int
    signature: int ndpi_serialize_end_of_block(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 2426
      start: 2421
    functionDepth: 0
    functionLinenumber: 2421
    functionLinenumberEnd: 2426
    functionName: ndpi_serializer_create_snapshot
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ndpi_serializer_create_snapshot(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - _serializer
    argTypes:
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 2449
      start: 2430
    functionDepth: 0
    functionLinenumber: 2430
    functionLinenumberEnd: 2449
    functionName: ndpi_serializer_rollback_snapshot
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ndpi_serializer_rollback_snapshot(ndpi_serializer *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_reset_serializer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - _deserializer
    - serialized_buffer
    - serialized_buffer_len
    argTypes:
    - ndpi_deserializer*
    - u_int8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2472
      start: 2454
    functionDepth: 2
    functionLinenumber: 2454
    functionLinenumberEnd: 2472
    functionName: ndpi_init_deserializer_buf
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_reset_serializer
    linkageType: ''
    returnType: int
    signature: "int ndpi_init_deserializer_buf(ndpi_deserializer *_deserializer,\n\t\t\t
      \      u_int8_t *serialized_buffer,\n\t\t\t       u_int32_t serialized_buffer_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_deserializer_buf
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - deserializer
    - _serializer
    argTypes:
    - ndpi_deserializer*
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 2483
      start: 2476
    functionDepth: 3
    functionLinenumber: 2476
    functionLinenumberEnd: 2483
    functionName: ndpi_init_deserializer
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_init_deserializer_buf
    linkageType: ''
    returnType: int
    signature: "int ndpi_init_deserializer(ndpi_deserializer *deserializer,\n\t\t\t
      \  ndpi_serializer *_serializer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _deserializer
    argTypes:
    - ndpi_deserializer*
    constantsTouched: []
    func_position:
      end: 2490
      start: 2487
    functionDepth: 0
    functionLinenumber: 2487
    functionLinenumberEnd: 2490
    functionName: ndpi_deserialize_get_format
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ndpi_serialization_format
    signature: ndpi_serialization_format ndpi_deserialize_get_format(ndpi_deserializer
      *_deserializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - deserializer
    argTypes:
    - ndpi_private_deserializer*
    constantsTouched: []
    func_position:
      end: 2503
      start: 2494
    functionDepth: 0
    functionLinenumber: 2494
    functionLinenumberEnd: 2503
    functionName: ndpi_deserialize_get_key_subtype
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ndpi_serialization_type
    signature: ndpi_serialization_type ndpi_deserialize_get_key_subtype(ndpi_private_deserializer
      *deserializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - deserializer
    argTypes:
    - ndpi_private_deserializer*
    constantsTouched: []
    func_position:
      end: 2516
      start: 2507
    functionDepth: 0
    functionLinenumber: 2507
    functionLinenumberEnd: 2516
    functionName: ndpi_deserialize_get_value_subtype
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ndpi_serialization_type
    signature: ndpi_serialization_type ndpi_deserialize_get_value_subtype(ndpi_private_deserializer
      *deserializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2526,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2537,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - _deserializer
    - key_type
    argTypes:
    - ndpi_deserializer*
    - ndpi_serialization_type*
    constantsTouched: []
    func_position:
      end: 2554
      start: 2520
    functionDepth: 1
    functionLinenumber: 2520
    functionLinenumberEnd: 2554
    functionName: ndpi_deserialize_get_item_type
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_deserialize_get_key_subtype
    - ndpi_deserialize_get_value_subtype
    linkageType: ''
    returnType: ndpi_serialization_type
    signature: ndpi_serialization_type ndpi_deserialize_get_item_type(ndpi_deserializer
      *_deserializer, ndpi_serialization_type *key_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - deserializer
    - offset
    argTypes:
    - ndpi_private_deserializer*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2571
      start: 2558
    functionDepth: 0
    functionLinenumber: 2558
    functionLinenumberEnd: 2571
    functionName: ndpi_deserialize_get_single_string_size
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: int
    signature: int ndpi_deserialize_get_single_string_size(ndpi_private_deserializer
      *deserializer, u_int32_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_single_string_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2604,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - deserializer
    - type
    - offset
    argTypes:
    - ndpi_private_deserializer*
    - ndpi_serialization_type
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2618
      start: 2575
    functionDepth: 1
    functionLinenumber: 2575
    functionLinenumberEnd: 2618
    functionName: ndpi_deserialize_get_single_size
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_deserialize_get_single_string_size
    linkageType: ''
    returnType: int
    signature: int ndpi_deserialize_get_single_size(ndpi_private_deserializer *deserializer,
      ndpi_serialization_type type, u_int32_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2635,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2636,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2642,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - _deserializer
    argTypes:
    - ndpi_deserializer*
    constantsTouched: []
    func_position:
      end: 2652
      start: 2624
    functionDepth: 2
    functionLinenumber: 2624
    functionLinenumberEnd: 2652
    functionName: ndpi_deserialize_next
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_deserialize_get_key_subtype
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_get_value_subtype
    linkageType: ''
    returnType: int
    signature: int ndpi_deserialize_next(ndpi_deserializer *_deserializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2669,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2671,1
    - Dst: ndpi_deserialize_single_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2678,1
    - Dst: ndpi_deserialize_single_uint16
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2681,1
    - Dst: ndpi_deserialize_single_uint8
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2685,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - _deserializer
    - key
    argTypes:
    - ndpi_deserializer*
    - u_int32_t*
    constantsTouched: []
    func_position:
      end: 2694
      start: 2656
    functionDepth: 2
    functionLinenumber: 2656
    functionLinenumberEnd: 2694
    functionName: ndpi_deserialize_key_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_single_uint8
    - ndpi_deserialize_single_uint32
    - ndpi_deserialize_single_uint16
    - ndpi_deserialize_get_key_subtype
    linkageType: ''
    returnType: int
    signature: "int ndpi_deserialize_key_uint32(ndpi_deserializer *_deserializer,\n\t\t\t\tu_int32_t
      *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2712,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2714,1
    - Dst: ndpi_deserialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - _deserializer
    - key
    argTypes:
    - ndpi_deserializer*
    - ndpi_string*
    constantsTouched: []
    func_position:
      end: 2720
      start: 2699
    functionDepth: 2
    functionLinenumber: 2699
    functionLinenumberEnd: 2720
    functionName: ndpi_deserialize_key_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_deserialize_get_key_subtype
    - ndpi_deserialize_single_string
    - ndpi_deserialize_get_single_size
    linkageType: ''
    returnType: int
    signature: "int ndpi_deserialize_key_string(ndpi_deserializer *_deserializer,\n\t\t\t\tndpi_string
      *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2738,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2739,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2744,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2745,1
    - Dst: ndpi_deserialize_single_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2752,1
    - Dst: ndpi_deserialize_single_uint16
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2755,1
    - Dst: ndpi_deserialize_single_uint8
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2759,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - _deserializer
    - value
    argTypes:
    - ndpi_deserializer*
    - u_int32_t*
    constantsTouched: []
    func_position:
      end: 2767
      start: 2724
    functionDepth: 2
    functionLinenumber: 2724
    functionLinenumberEnd: 2767
    functionName: ndpi_deserialize_value_uint32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_single_uint8
    - ndpi_deserialize_single_uint32
    - ndpi_deserialize_single_uint16
    - ndpi_deserialize_get_value_subtype
    - ndpi_deserialize_get_key_subtype
    linkageType: ''
    returnType: int
    signature: "int ndpi_deserialize_value_uint32(ndpi_deserializer *_deserializer,\n\t\t\t\t
      \ u_int32_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2784,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2785,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2790,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2791,1
    - Dst: ndpi_deserialize_value_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2796,1
    - Dst: ndpi_deserialize_single_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - _deserializer
    - value
    argTypes:
    - ndpi_deserializer*
    - u_int64_t*
    constantsTouched: []
    func_position:
      end: 2804
      start: 2771
    functionDepth: 3
    functionLinenumber: 2771
    functionLinenumberEnd: 2804
    functionName: ndpi_deserialize_value_uint64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_value_uint32
    - ndpi_deserialize_single_uint64
    - ndpi_deserialize_get_value_subtype
    - ndpi_deserialize_get_key_subtype
    linkageType: ''
    returnType: int
    signature: "int ndpi_deserialize_value_uint64(ndpi_deserializer *_deserializer,\n\t\t\t\t
      \ u_int64_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2822,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2823,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2828,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2829,1
    - Dst: ndpi_deserialize_single_int32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2836,1
    - Dst: ndpi_deserialize_single_int16
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2839,1
    - Dst: ndpi_deserialize_single_int8
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2843,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - _deserializer
    - value
    argTypes:
    - ndpi_deserializer*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 2851
      start: 2808
    functionDepth: 2
    functionLinenumber: 2808
    functionLinenumberEnd: 2851
    functionName: ndpi_deserialize_value_int32
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_single_int8
    - ndpi_deserialize_get_value_subtype
    - ndpi_deserialize_get_key_subtype
    - ndpi_deserialize_single_int32
    - ndpi_deserialize_single_int16
    linkageType: ''
    returnType: int
    signature: "int ndpi_deserialize_value_int32(ndpi_deserializer *_deserializer,\n\t\t\t\t
      int32_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2869,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2870,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2875,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2876,1
    - Dst: ndpi_deserialize_value_int32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2881,1
    - Dst: ndpi_deserialize_single_int64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - _deserializer
    - value
    argTypes:
    - ndpi_deserializer*
    - int64_t*
    constantsTouched: []
    func_position:
      end: 2889
      start: 2855
    functionDepth: 3
    functionLinenumber: 2855
    functionLinenumberEnd: 2889
    functionName: ndpi_deserialize_value_int64
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_get_value_subtype
    - ndpi_deserialize_single_int64
    - ndpi_deserialize_get_key_subtype
    - ndpi_deserialize_value_int32
    linkageType: ''
    returnType: int
    signature: "int ndpi_deserialize_value_int64(ndpi_deserializer *_deserializer,\n\t\t\t\t
      int64_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2905,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2906,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2911,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2912,1
    - Dst: ndpi_deserialize_single_float
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2918,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - _deserializer
    - value
    argTypes:
    - ndpi_deserializer*
    - float*
    constantsTouched: []
    func_position:
      end: 2921
      start: 2893
    functionDepth: 2
    functionLinenumber: 2893
    functionLinenumberEnd: 2921
    functionName: ndpi_deserialize_value_float
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_deserialize_get_key_subtype
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_get_value_subtype
    - ndpi_deserialize_single_float
    linkageType: ''
    returnType: int
    signature: "int ndpi_deserialize_value_float(ndpi_deserializer *_deserializer,\n\t\t\t\t
      float *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2937,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2938,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2943,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2944,1
    - Dst: ndpi_deserialize_single_double
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - _deserializer
    - value
    argTypes:
    - ndpi_deserializer*
    - double*
    constantsTouched: []
    func_position:
      end: 2953
      start: 2925
    functionDepth: 2
    functionLinenumber: 2925
    functionLinenumberEnd: 2953
    functionName: ndpi_deserialize_value_double
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_deserialize_get_key_subtype
    - ndpi_deserialize_single_double
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_get_value_subtype
    linkageType: ''
    returnType: int
    signature: "int ndpi_deserialize_value_double(ndpi_deserializer *_deserializer,\n
      \                double *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2971,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2973,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2978,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2980,1
    - Dst: ndpi_deserialize_single_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:2986,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - _deserializer
    - value
    argTypes:
    - ndpi_deserializer*
    - ndpi_string*
    constantsTouched: []
    func_position:
      end: 2989
      start: 2958
    functionDepth: 2
    functionLinenumber: 2958
    functionLinenumberEnd: 2989
    functionName: ndpi_deserialize_value_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_deserialize_get_key_subtype
    - ndpi_deserialize_single_string
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_get_value_subtype
    linkageType: ''
    returnType: int
    signature: "int ndpi_deserialize_value_string(ndpi_deserializer *_deserializer,\n\t\t\t\t
      \ ndpi_string *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_key_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3010,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3011,1
    - Dst: ndpi_deserialize_get_value_subtype
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3017,1
    - Dst: ndpi_deserialize_get_single_size
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3018,1
    - Dst: ndpi_extend_serializer_buffer
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3025,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3030,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - _deserializer
    - _serializer
    argTypes:
    - ndpi_deserializer*
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 3037
      start: 2994
    functionDepth: 2
    functionLinenumber: 2994
    functionLinenumberEnd: 3037
    functionName: ndpi_deserialize_clone_item
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_extend_serializer_buffer
    - ndpi_deserialize_get_single_size
    - ndpi_deserialize_get_value_subtype
    - ndpi_deserialize_get_key_subtype
    linkageType: ''
    returnType: int
    signature: int ndpi_deserialize_clone_item(ndpi_deserializer *_deserializer, ndpi_serializer
      *_serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_deserialize_get_item_type
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3052,1
    - Dst: ndpi_serialize_end_of_record
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3055,1
    - Dst: ndpi_deserialize_key_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3058,1
    - Dst: ndpi_serialize_start_of_block_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3059,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3062,1
    - Dst: ndpi_deserialize_key_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3065,1
    - Dst: ndpi_serialize_start_of_list_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3066,1
    - Dst: ndpi_serialize_end_of_list
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3069,1
    - Dst: ndpi_deserialize_key_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3076,1
    - Dst: ndpi_deserialize_key_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3079,1
    - Dst: ndpi_deserialize_value_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3088,1
    - Dst: ndpi_serialize_binary_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3089,1
    - Dst: ndpi_serialize_uint32_uint32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3090,1
    - Dst: ndpi_deserialize_value_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3094,1
    - Dst: ndpi_serialize_binary_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3095,1
    - Dst: ndpi_serialize_uint32_uint64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3096,1
    - Dst: ndpi_deserialize_value_int32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3100,1
    - Dst: ndpi_serialize_binary_int32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3101,1
    - Dst: ndpi_serialize_uint32_int32
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3102,1
    - Dst: ndpi_deserialize_value_int64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3106,1
    - Dst: ndpi_serialize_binary_int64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3107,1
    - Dst: ndpi_serialize_uint32_int64
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3108,1
    - Dst: ndpi_deserialize_value_float
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3112,1
    - Dst: ndpi_serialize_binary_float
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3113,1
    - Dst: ndpi_serialize_uint32_float
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3114,1
    - Dst: ndpi_deserialize_value_string
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3118,1
    - Dst: ndpi_serialize_binary_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3119,1
    - Dst: ndpi_serialize_uint32_binary
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3120,1
    - Dst: ndpi_deserialize_next
      Src: /src/ndpi/src/lib/ndpi_serializer.c:3128,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 86
    argCount: 2
    argNames:
    - deserializer
    - serializer
    argTypes:
    - ndpi_deserializer*
    - ndpi_serializer*
    constantsTouched: []
    func_position:
      end: 3132
      start: 3042
    functionDepth: 8
    functionLinenumber: 3042
    functionLinenumberEnd: 3132
    functionName: ndpi_deserialize_clone_all
    functionSourceFile: /src/ndpi/src/lib/ndpi_serializer.c
    functionUses: 1
    functionsReached:
    - ndpi_serialize_binary_uint32
    - ndpi_serialize_binary_uint64
    - ndpi_serialize_start_of_list_binary
    - ndpi_serialize_uint32_float
    - ndpi_serialize_uint32_uint32
    - ndpi_serialize_end_of_list
    - ndpi_deserialize_get_item_type
    - ndpi_serialize_binary_int64
    - ndpi_deserialize_value_uint64
    - ndpi_deserialize_key_string
    - ndpi_serialize_uint32_binary
    - ndpi_serialize_uint32_uint64
    - ndpi_serialize_binary_int32
    - ndpi_serialize_uint32_int32
    - ndpi_serialize_end_of_block
    - ndpi_deserialize_value_int64
    - ndpi_serialize_binary_float
    - ndpi_serialize_binary_binary
    - ndpi_deserialize_value_uint32
    - ndpi_serialize_uint32_int64
    - ndpi_deserialize_next
    - ndpi_deserialize_value_string
    - ndpi_serialize_end_of_record
    - ndpi_deserialize_value_float
    - ndpi_deserialize_key_uint32
    - ndpi_deserialize_value_int32
    - ndpi_serialize_start_of_block_binary
    linkageType: ''
    returnType: int
    signature: int ndpi_deserialize_clone_all(ndpi_deserializer *deserializer, ndpi_serializer
      *serializer)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - u_int8_t*
    - void*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: ndpi_community_id_buf_copy
    functionSourceFile: /src/ndpi/src/lib/ndpi_community_id.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t ndpi_community_id_buf_copy(u_int8_t * const dst, const void
      * const src, u_int16_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 3
    argNames:
    - icmp_type
    - icmp_code
    - is_one_way
    argTypes:
    - u_int8_t
    - u_int8_t
    - int*
    constantsTouched: []
    func_position:
      end: 105
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 105
    functionName: ndpi_community_id_icmp_type_to_code_v4
    functionSourceFile: /src/ndpi/src/lib/ndpi_community_id.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_community_id_icmp_type_to_code_v4(u_int8_t icmp_type,
      u_int8_t icmp_code, int *is_one_way)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 3
    argNames:
    - icmp_type
    - icmp_code
    - is_one_way
    argTypes:
    - u_int8_t
    - u_int8_t
    - int*
    constantsTouched: []
    func_position:
      end: 145
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 145
    functionName: ndpi_community_id_icmp_type_to_code_v6
    functionSourceFile: /src/ndpi/src/lib/ndpi_community_id.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_community_id_icmp_type_to_code_v6(u_int8_t icmp_type,
      u_int8_t icmp_code, int *is_one_way)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - ip1
    - ip2
    - p1
    - p2
    argTypes:
    - u_int32_t
    - u_int32_t
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: ndpi_community_id_peer_v4_is_less_than
    functionSourceFile: /src/ndpi/src/lib/ndpi_community_id.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_community_id_peer_v4_is_less_than(u_int32_t ip1, u_int32_t
      ip2, u_int16_t p1, u_int16_t p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - ip1
    - ip2
    - p1
    - p2
    argTypes:
    - struct ndpi_in6_addr*
    - struct ndpi_in6_addr*
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: ndpi_community_id_peer_v6_is_less_than
    functionSourceFile: /src/ndpi/src/lib/ndpi_community_id.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_community_id_peer_v6_is_less_than(struct ndpi_in6_addr *ip1,
      struct ndpi_in6_addr *ip2, u_int16_t p1, u_int16_t p2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Init
      Src: /src/ndpi/src/lib/ndpi_community_id.c:170,1
    - Dst: SHA1Update
      Src: /src/ndpi/src/lib/ndpi_community_id.c:171,1
    - Dst: SHA1Final
      Src: /src/ndpi/src/lib/ndpi_community_id.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - message
    - len
    - hash
    argTypes:
    - uint8_t*
    - size_t
    - u_char*
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: ndpi_string_sha1_hash
    functionSourceFile: /src/ndpi/src/lib/ndpi_community_id.c
    functionUses: 0
    functionsReached:
    - SHA1Update
    - SHA1Final
    - SHA1Init
    linkageType: ''
    returnType: void
    signature: void ndpi_string_sha1_hash(const uint8_t *message, size_t len, u_char
      *hash /* 20-bytes */)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:188,1
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:191,1
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:200,1
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:201,1
    - Dst: ndpi_string_sha1_hash
      Src: /src/ndpi/src/lib/ndpi_community_id.c:206,1
    - Dst: ndpi_base64_encode
      Src: /src/ndpi/src/lib/ndpi_community_id.c:209,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_community_id.c:215,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_community_id.c:217,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_community_id.c:218,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_community_id.c:220,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_community_id.c:222,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/ndpi_community_id.c:222,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_community_id.c:223,1
    - Dst: printf
      Src: /src/ndpi/src/lib/ndpi_community_id.c:225,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_community_id.c:228,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_community_id.c:229,1
    - Dst: strcpy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:236,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_community_id.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 7
    argNames:
    - comm_buf
    - 'off'
    - l4_proto
    - src_port
    - dst_port
    - hash_buf
    - hash_buf_len
    argTypes:
    - u_int8_t*
    - u_int16_t
    - u_int8_t
    - u_int16_t
    - u_int16_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 240
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 240
    functionName: ndpi_community_id_finalize_and_compute_hash
    functionSourceFile: /src/ndpi/src/lib/ndpi_community_id.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_free
    - ndpi_string_sha1_hash
    - ndpi_base64_encode
    - strcpy
    - ndpi_community_id_buf_copy
    - ntohl
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ndpi_community_id_finalize_and_compute_hash(u_int8_t *comm_buf,
      u_int16_t off, u_int8_t l4_proto,\n\t\t\t\t\t\t       u_int16_t src_port, u_int16_t
      dst_port,\n\t\t\t\t\t\t       char *hash_buf, size_t hash_buf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_community_id_icmp_type_to_code_v4
      Src: /src/ndpi/src/lib/ndpi_community_id.c:276,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/ndpi_community_id.c:289,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/ndpi_community_id.c:290,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_community_id.c:291,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_community_id.c:292,1
    - Dst: ndpi_community_id_peer_v4_is_less_than
      Src: /src/ndpi/src/lib/ndpi_community_id.c:299,1
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:309,1
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:312,1
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:313,1
    - Dst: ndpi_community_id_finalize_and_compute_hash
      Src: /src/ndpi/src/lib/ndpi_community_id.c:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 9
    argNames:
    - l4_proto
    - src_ip
    - dst_ip
    - src_port
    - dst_port
    - icmp_type
    - icmp_code
    - hash_buf
    - hash_buf_len
    argTypes:
    - u_int8_t
    - u_int32_t
    - u_int32_t
    - u_int16_t
    - u_int16_t
    - u_int8_t
    - u_int8_t
    - u_char*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 317
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 317
    functionName: ndpi_flowv4_flow_hash
    functionSourceFile: /src/ndpi/src/lib/ndpi_community_id.c
    functionUses: 0
    functionsReached:
    - ndpi_community_id_peer_v4_is_less_than
    - ndpi_community_id_buf_copy
    - htonl
    - ndpi_community_id_finalize_and_compute_hash
    - ndpi_community_id_icmp_type_to_code_v4
    - htons
    linkageType: ''
    returnType: int
    signature: "int ndpi_flowv4_flow_hash(u_int8_t l4_proto, u_int32_t src_ip, u_int32_t
      dst_ip,\n                          u_int16_t src_port, u_int16_t dst_port,\n
      \                         u_int8_t icmp_type, u_int8_t icmp_code,\n                          u_char
      *hash_buf, u_int8_t hash_buf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_community_id_icmp_type_to_code_v6
      Src: /src/ndpi/src/lib/ndpi_community_id.c:335,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_community_id.c:348,1
    - Dst: htons
      Src: /src/ndpi/src/lib/ndpi_community_id.c:349,1
    - Dst: ndpi_community_id_peer_v6_is_less_than
      Src: /src/ndpi/src/lib/ndpi_community_id.c:351,1
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:360,1
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:363,1
    - Dst: ndpi_community_id_buf_copy
      Src: /src/ndpi/src/lib/ndpi_community_id.c:364,1
    - Dst: ndpi_community_id_finalize_and_compute_hash
      Src: /src/ndpi/src/lib/ndpi_community_id.c:366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 9
    argNames:
    - l4_proto
    - src_ip
    - dst_ip
    - src_port
    - dst_port
    - icmp_type
    - icmp_code
    - hash_buf
    - hash_buf_len
    argTypes:
    - u_int8_t
    - struct ndpi_in6_addr*
    - struct ndpi_in6_addr*
    - u_int16_t
    - u_int16_t
    - u_int8_t
    - u_int8_t
    - u_char*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 368
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 368
    functionName: ndpi_flowv6_flow_hash
    functionSourceFile: /src/ndpi/src/lib/ndpi_community_id.c
    functionUses: 0
    functionsReached:
    - ndpi_community_id_peer_v6_is_less_than
    - ndpi_community_id_icmp_type_to_code_v6
    - ndpi_community_id_buf_copy
    - ndpi_community_id_finalize_and_compute_hash
    - htons
    linkageType: ''
    returnType: int
    signature: "int ndpi_flowv6_flow_hash(u_int8_t l4_proto, struct ndpi_in6_addr
      *src_ip, struct ndpi_in6_addr *dst_ip,\n                          u_int16_t
      src_port, u_int16_t dst_port,\n                          u_int8_t icmp_type,
      u_int8_t icmp_code,\n                          u_char *hash_buf, u_int8_t hash_buf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmap_alloc
      Src: /src/ndpi/src/lib/ndpi_filter.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: ndpi_filter_alloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_filter.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmap_alloc
    linkageType: ''
    returnType: ndpi_filter
    signature: ndpi_filter * ndpi_filter_alloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmap_set
      Src: /src/ndpi/src/lib/ndpi_filter.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - f
    - value
    argTypes:
    - ndpi_filter*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: ndpi_filter_add
    functionSourceFile: /src/ndpi/src/lib/ndpi_filter.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmap_set
    linkageType: ''
    returnType: bool
    signature: bool ndpi_filter_add(ndpi_filter *f, u_int32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_filter_add
      Src: /src/ndpi/src/lib/ndpi_filter.c:58,1
    - Dst: ndpi_hash_string
      Src: /src/ndpi/src/lib/ndpi_filter.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - string
    argTypes:
    - ndpi_filter*
    - char*
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: ndpi_filter_add_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_filter.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_string
    - ndpi_filter_add
    linkageType: ''
    returnType: bool
    signature: bool ndpi_filter_add_string(ndpi_filter *f, char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmap_isset
      Src: /src/ndpi/src/lib/ndpi_filter.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - f
    - value
    argTypes:
    - ndpi_filter*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: ndpi_filter_contains
    functionSourceFile: /src/ndpi/src/lib/ndpi_filter.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmap_isset
    linkageType: ''
    returnType: bool
    signature: bool ndpi_filter_contains(ndpi_filter *f, u_int32_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_filter_contains
      Src: /src/ndpi/src/lib/ndpi_filter.c:76,1
    - Dst: ndpi_hash_string
      Src: /src/ndpi/src/lib/ndpi_filter.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - string
    argTypes:
    - ndpi_filter*
    - char*
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: ndpi_filter_contains_string
    functionSourceFile: /src/ndpi/src/lib/ndpi_filter.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_string
    - ndpi_filter_contains
    linkageType: ''
    returnType: bool
    signature: bool ndpi_filter_contains_string(ndpi_filter *f, char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmap_free
      Src: /src/ndpi/src/lib/ndpi_filter.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - ndpi_filter*
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: ndpi_filter_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_filter.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmap_free
    linkageType: ''
    returnType: void
    signature: void ndpi_filter_free(ndpi_filter *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/ndpi_filter.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - ndpi_filter*
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: ndpi_filter_size
    functionSourceFile: /src/ndpi/src/lib/ndpi_filter.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: size_t
    signature: size_t ndpi_filter_size(ndpi_filter *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmap_cardinality
      Src: /src/ndpi/src/lib/ndpi_filter.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - ndpi_filter*
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: ndpi_filter_cardinality
    functionSourceFile: /src/ndpi/src/lib/ndpi_filter.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmap_cardinality
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t ndpi_filter_cardinality(ndpi_filter *f)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_hash_init
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:39,1
    - Dst: ndpi_add_tcp_fingerprint
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: ndpi_load_tcp_fingerprints
    functionSourceFile: /src/ndpi/src/lib/ndpi_fingerprint.c
    functionUses: 1
    functionsReached:
    - ndpi_hash_init
    - ndpi_add_tcp_fingerprint
    linkageType: ''
    returnType: void
    signature: void ndpi_load_tcp_fingerprints(struct ndpi_detection_module_struct
      *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:54,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_str
    - tcp_fingerprint
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: ndpi_get_os_from_tcp_fingerprint
    functionSourceFile: /src/ndpi/src/lib/ndpi_fingerprint.c
    functionUses: 1
    functionsReached:
    - ndpi_hash_find_entry
    - strlen
    linkageType: ''
    returnType: ndpi_os
    signature: "ndpi_os ndpi_get_os_from_tcp_fingerprint(struct ndpi_detection_module_struct
      *ndpi_str,\n\t\t\t\t\t char *tcp_fingerprint)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:77,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:80,1
    - Dst: ndpi_hash_add_entry
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ndpi_str
    - fingerprint
    - os
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    - ndpi_os
    constantsTouched: []
    func_position:
      end: 90
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 90
    functionName: ndpi_add_tcp_fingerprint
    functionSourceFile: /src/ndpi/src/lib/ndpi_fingerprint.c
    functionUses: 1
    functionsReached:
    - ndpi_hash_find_entry
    - ndpi_hash_add_entry
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ndpi_add_tcp_fingerprint(struct ndpi_detection_module_struct *ndpi_str,\n\t\t\t
      \    char *fingerprint, ndpi_os os)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:109,1
    - Dst: NDPI_LOG_ERR
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:111,1
    - Dst: strerror
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:111,1
    - Dst: load_tcp_fingerprint_file_fd
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:115,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_str
    - path
    argTypes:
    - struct ndpi_detection_module_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 120
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 120
    functionName: ndpi_load_tcp_fingerprint_file
    functionSourceFile: /src/ndpi/src/lib/ndpi_fingerprint.c
    functionUses: 0
    functionsReached:
    - strerror
    - NDPI_LOG_ERR
    - fclose
    - fopen
    - load_tcp_fingerprint_file_fd
    linkageType: ''
    returnType: int
    signature: int ndpi_load_tcp_fingerprint_file(struct ndpi_detection_module_struct
      *ndpi_str, const char *path)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_hash_init
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:132,1
    - Dst: fgets
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:135,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:143,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:146,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:147,1
    - Dst: ndpi_add_tcp_fingerprint
      Src: /src/ndpi/src/lib/ndpi_fingerprint.c:151,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 21
    argCount: 2
    argNames:
    - ndpi_str
    - fd
    argTypes:
    - struct ndpi_detection_module_struct*
    - FILE*
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: load_tcp_fingerprint_file_fd
    functionSourceFile: /src/ndpi/src/lib/ndpi_fingerprint.c
    functionUses: 1
    functionsReached:
    - ndpi_hash_init
    - atoi
    - ndpi_add_tcp_fingerprint
    - fgets
    - strtok_r
    linkageType: ''
    returnType: int
    signature: int load_tcp_fingerprint_file_fd(struct ndpi_detection_module_struct
      *ndpi_str, FILE *fd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_create
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:45,1
    - Dst: roaring64_bitmap_create
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: ndpi_bitmap_alloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 1
    functionsReached:
    - roaring64_bitmap_create
    - roaring_bitmap_create
    linkageType: ''
    returnType: ndpi_bitmap
    signature: ndpi_bitmap * ndpi_bitmap_alloc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_free
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:55,1
    - Dst: roaring64_bitmap_free
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: ndpi_bitmap_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 1
    functionsReached:
    - roaring_bitmap_free
    - roaring64_bitmap_free
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap_free(ndpi_bitmap* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_copy
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:65,1
    - Dst: roaring64_bitmap_copy
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: ndpi_bitmap_copy
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring_bitmap_copy
    - roaring64_bitmap_copy
    linkageType: ''
    returnType: ndpi_bitmap
    signature: ndpi_bitmap * ndpi_bitmap_copy(ndpi_bitmap* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:75,1
    - Dst: roaring64_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: ndpi_bitmap_cardinality
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 1
    functionsReached:
    - roaring_bitmap_get_cardinality
    - roaring64_bitmap_get_cardinality
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t ndpi_bitmap_cardinality(ndpi_bitmap* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_add
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:85,1
    - Dst: roaring64_bitmap_add
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - value
    argTypes:
    - ndpi_bitmap*
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: ndpi_bitmap_set
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 1
    functionsReached:
    - roaring64_bitmap_add
    - roaring_bitmap_add
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap_set(ndpi_bitmap* b, u_int64_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_remove
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:95,1
    - Dst: roaring64_bitmap_remove
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - value
    argTypes:
    - ndpi_bitmap*
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: ndpi_bitmap_unset
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring64_bitmap_remove
    - roaring_bitmap_remove
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap_unset(ndpi_bitmap* b, u_int64_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_contains
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:107,1
    - Dst: roaring64_bitmap_contains
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - b
    - value
    argTypes:
    - ndpi_bitmap*
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: ndpi_bitmap_isset
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 1
    functionsReached:
    - roaring_bitmap_contains
    - roaring64_bitmap_contains
    linkageType: ''
    returnType: bool
    signature: bool ndpi_bitmap_isset(ndpi_bitmap* b, u_int64_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:123,1
    - Dst: roaring64_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:127,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:130,1
    - Dst: roaring_bitmap_portable_serialize
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:135,1
    - Dst: roaring64_bitmap_portable_serialize
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - b
    - buf
    argTypes:
    - ndpi_bitmap*
    - char**
    constantsTouched: []
    func_position:
      end: 139
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 139
    functionName: ndpi_bitmap_serialize
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring_bitmap_portable_size_in_bytes
    - roaring_bitmap_portable_serialize
    - roaring64_bitmap_portable_size_in_bytes
    - ndpi_malloc
    - roaring64_bitmap_portable_serialize
    linkageType: ''
    returnType: size_t
    signature: size_t ndpi_bitmap_serialize(ndpi_bitmap* b, char **buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_portable_deserialize_safe
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:145,1
    - Dst: roaring64_bitmap_portable_deserialize_safe
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: ndpi_bitmap_deserialize
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring_bitmap_portable_deserialize_safe
    - roaring64_bitmap_portable_deserialize_safe
    linkageType: ''
    returnType: ndpi_bitmap
    signature: ndpi_bitmap * ndpi_bitmap_deserialize(char *buf, size_t buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_and_inplace
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:156,1
    - Dst: roaring64_bitmap_and_inplace
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b_and
    argTypes:
    - ndpi_bitmap*
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: ndpi_bitmap_and
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring_bitmap_and_inplace
    - roaring64_bitmap_and_inplace
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap_and(ndpi_bitmap* a, ndpi_bitmap* b_and)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_and
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:167,1
    - Dst: roaring64_bitmap_and
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b_and
    argTypes:
    - ndpi_bitmap*
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: ndpi_bitmap_and_alloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring64_bitmap_and
    - roaring_bitmap_and
    linkageType: ''
    returnType: ndpi_bitmap
    signature: ndpi_bitmap * ndpi_bitmap_and_alloc(ndpi_bitmap* a, ndpi_bitmap* b_and)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_andnot_inplace
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:178,1
    - Dst: roaring64_bitmap_andnot_inplace
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b_and
    argTypes:
    - ndpi_bitmap*
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: ndpi_bitmap_andnot
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring_bitmap_andnot_inplace
    - roaring64_bitmap_andnot_inplace
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap_andnot(ndpi_bitmap* a, ndpi_bitmap* b_and)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_or_inplace
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:189,1
    - Dst: roaring64_bitmap_or_inplace
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b_or
    argTypes:
    - ndpi_bitmap*
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: ndpi_bitmap_or
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring64_bitmap_or_inplace
    - roaring_bitmap_or_inplace
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap_or(ndpi_bitmap* a, ndpi_bitmap* b_or)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_or
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:200,1
    - Dst: roaring64_bitmap_or
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b_or
    argTypes:
    - ndpi_bitmap*
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: ndpi_bitmap_or_alloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring_bitmap_or
    - roaring64_bitmap_or
    linkageType: ''
    returnType: ndpi_bitmap
    signature: ndpi_bitmap * ndpi_bitmap_or_alloc(ndpi_bitmap* a, ndpi_bitmap* b_or)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_xor_inplace
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:211,1
    - Dst: roaring64_bitmap_xor_inplace
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b_xor
    argTypes:
    - ndpi_bitmap*
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: ndpi_bitmap_xor
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring64_bitmap_xor_inplace
    - roaring_bitmap_xor_inplace
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap_xor(ndpi_bitmap* a, ndpi_bitmap* b_xor)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_run_optimize
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:221,1
    - Dst: roaring64_bitmap_run_optimize
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: ndpi_bitmap_optimize
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring_bitmap_run_optimize
    - roaring64_bitmap_run_optimize
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap_optimize(ndpi_bitmap* a)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_create_iterator
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:231,1
    - Dst: roaring64_iterator_create
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: ndpi_bitmap_iterator_alloc
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring64_iterator_create
    - roaring_create_iterator
    linkageType: ''
    returnType: ndpi_bitmap_iterator
    signature: ndpi_bitmap_iterator * ndpi_bitmap_iterator_alloc(ndpi_bitmap* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free_uint32_iterator
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:241,1
    - Dst: roaring64_iterator_free
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: ndpi_bitmap_iterator_free
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring_free_uint32_iterator
    - roaring64_iterator_free
    linkageType: ''
    returnType: void
    signature: void ndpi_bitmap_iterator_free(ndpi_bitmap* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_bitmap_is_empty
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:251,1
    - Dst: roaring64_bitmap_is_empty
      Src: /src/ndpi/src/lib/ndpi_bitmap.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - ndpi_bitmap*
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: ndpi_bitmap_is_empty
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached:
    - roaring_bitmap_is_empty
    - roaring64_bitmap_is_empty
    linkageType: ''
    returnType: bool
    signature: bool ndpi_bitmap_is_empty(ndpi_bitmap* b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - value
    argTypes:
    - ndpi_bitmap_iterator*
    - u_int64_t*
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: ndpi_bitmap_iterator_next
    functionSourceFile: /src/ndpi/src/lib/ndpi_bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ndpi_bitmap_iterator_next(ndpi_bitmap_iterator* i, u_int64_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: ndpi_DeleteEntry
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_DeleteEntry(void *a)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - ndpi_prefix_t*
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: ndpi_prefix_tochar
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_char
    signature: u_char * ndpi_prefix_tochar (ndpi_prefix_t * prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - addr
    - dest
    - mask
    argTypes:
    - void*
    - void*
    - u_int
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: ndpi_comp_with_mask
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: int
    signature: int ndpi_comp_with_mask (void *addr, void *dest, u_int mask)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:103,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:111,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:120,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:123,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - af
    - src
    - dst
    argTypes:
    - int
    - char*
    - void*
    constantsTouched: []
    func_position:
      end: 130
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 130
    functionName: ndpi_my_inet_pton
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_isdigit
    - memcpy
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int ndpi_my_inet_pton (int af, const char *src, void *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: THREAD_SPECIFIC_DATA
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void THREAD_SPECIFIC_DATA (struct buffer, buffp, 1);\n#    else\n
      \   { /* for scope only */\n      static struct buffer local_buff;\n      buffp
      = &local_buff;\n    }\n#    endif\n    if(buffp == NULL)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_prefix_toa2x
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prefix
    - buff
    argTypes:
    - ndpi_prefix_t*
    - char*
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: ndpi_prefix_toa2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_prefix_toa2x
    linkageType: ''
    returnType: char
    signature: char * ndpi_prefix_toa2 (ndpi_prefix_t *prefix, char *buff)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_prefix_toa2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - ndpi_prefix_t*
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ndpi_prefix_toa
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_prefix_toa2
    linkageType: ''
    returnType: char
    signature: char * ndpi_prefix_toa (ndpi_prefix_t * prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:217,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:222,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:228,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:232,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:239,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:244,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:249,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - family
    - dest
    - bitlen
    - prefix
    argTypes:
    - int
    - void*
    - int
    - ndpi_prefix_t*
    constantsTouched: []
    func_position:
      end: 263
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 263
    functionName: ndpi_New_Prefix2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - memcpy
    linkageType: ''
    returnType: ndpi_prefix_t
    signature: ndpi_prefix_t * ndpi_New_Prefix2 (int family, void *dest, int bitlen,
      ndpi_prefix_t *prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_New_Prefix2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - family
    - dest
    - bitlen
    argTypes:
    - int
    - void*
    - int
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: ndpi_New_Prefix
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_New_Prefix2
    linkageType: ''
    returnType: ndpi_prefix_t
    signature: ndpi_prefix_t * ndpi_New_Prefix (int family, void *dest, int bitlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_New_Prefix2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - ndpi_prefix_t*
    constantsTouched: []
    func_position:
      end: 284
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 284
    functionName: ndpi_Ref_Prefix
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_New_Prefix2
    linkageType: ''
    returnType: ndpi_prefix_t
    signature: 'ndpi_prefix_t *

      ndpi_Ref_Prefix (ndpi_prefix_t * prefix)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:292,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:295,1
    - Dst: ndpi_DeleteEntry
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - ndpi_prefix_t*
    constantsTouched: []
    func_position:
      end: 300
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 300
    functionName: ndpi_Deref_Prefix
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - assert
    - ndpi_DeleteEntry
    linkageType: ''
    returnType: void
    signature: void ndpi_Deref_Prefix (ndpi_prefix_t * prefix)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:311,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - maxbits
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 321
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 321
    functionName: ndpi_patricia_new
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 4
    functionsReached:
    - ndpi_calloc
    - assert
    linkageType: ''
    returnType: ndpi_patricia_tree_t
    signature: 'ndpi_patricia_tree_t *

      ndpi_patricia_new (u_int16_t maxbits)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_Deref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:345,1
    - Dst: func
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:347,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:350,1
    - Dst: ndpi_DeleteEntry
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:352,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:369,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - patricia
    - func
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_void_fn_t
    constantsTouched: []
    func_position:
      end: 371
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 371
    functionName: ndpi_Clear_Patricia
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_DeleteEntry
    - func
    - ndpi_Deref_Prefix
    - assert
    linkageType: ''
    returnType: void
    signature: void ndpi_Clear_Patricia (ndpi_patricia_tree_t *patricia, ndpi_void_fn_t
      func)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_Clear_Patricia
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:376,1
    - Dst: ndpi_DeleteEntry
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - patricia
    - func
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_void_fn_t
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: ndpi_patricia_destroy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 4
    functionsReached:
    - ndpi_DeleteEntry
    - ndpi_Clear_Patricia
    linkageType: ''
    returnType: void
    signature: void ndpi_patricia_destroy (ndpi_patricia_tree_t *patricia, ndpi_void_fn_t
      func)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:392,1
    - Dst: PATRICIA_WALK
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:394,1
    - Dst: func
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - patricia
    - func
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_void_fn2_t
    constantsTouched: []
    func_position:
      end: 397
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 397
    functionName: ndpi_patricia_process
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - func
    - assert
    - PATRICIA_WALK
    linkageType: ''
    returnType: void
    signature: void ndpi_patricia_process (ndpi_patricia_tree_t *patricia, ndpi_void_fn2_t
      func)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_patricia_clone_walk
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:406,1
    - Dst: ndpi_patricia_lookup
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:410,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:414,1
    - Dst: ndpi_patricia_clone_walk
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - node
    - dst
    argTypes:
    - ndpi_patricia_node_t*
    - ndpi_patricia_tree_t*
    constantsTouched: []
    func_position:
      end: 425
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 425
    functionName: ndpi_patricia_clone_walk
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 1
    functionsReached:
    - ndpi_patricia_lookup
    - memcpy
    - ndpi_patricia_clone_walk
    linkageType: ''
    returnType: size_t
    signature: size_t ndpi_patricia_clone_walk(ndpi_patricia_node_t *node, ndpi_patricia_tree_t
      *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:432,1
    - Dst: ndpi_patricia_clone_walk
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - from
    argTypes:
    - ndpi_patricia_tree_t*
    constantsTouched: []
    func_position:
      end: 440
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 440
    functionName: ndpi_patricia_clone
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_patricia_new
    - ndpi_patricia_clone_walk
    linkageType: ''
    returnType: ndpi_patricia_tree_t
    signature: 'ndpi_patricia_tree_t *

      ndpi_patricia_clone (const ndpi_patricia_tree_t * const from)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:446,1
    - Dst: ndpi_patricia_walk_inorder
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:449,1
    - Dst: func
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:453,1
    - Dst: ndpi_patricia_walk_inorder
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - node
    - func
    - data
    argTypes:
    - ndpi_patricia_node_t*
    - ndpi_void_fn3_t
    - void*
    constantsTouched: []
    func_position:
      end: 462
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 462
    functionName: ndpi_patricia_walk_inorder
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 1
    functionsReached:
    - func
    - assert
    - ndpi_patricia_walk_inorder
    linkageType: ''
    returnType: size_t
    signature: size_t ndpi_patricia_walk_inorder(ndpi_patricia_node_t *node, ndpi_void_fn3_t
      func, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_patricia_walk_inorder
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - patricia
    - func
    - data
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_void_fn3_t
    - void*
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: ndpi_patricia_walk_tree_inorder
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - ndpi_patricia_walk_inorder
    linkageType: ''
    returnType: size_t
    signature: size_t ndpi_patricia_walk_tree_inorder(ndpi_patricia_tree_t *patricia,
      ndpi_void_fn3_t func, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:481,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:482,1
    - Dst: ndpi_prefix_touchar
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:490,1
    - Dst: BIT_TEST
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:495,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:498,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:499,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:501,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:509,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:510,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:512,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:524,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:525,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:527,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:533,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:534,1
    - Dst: ndpi_comp_with_mask
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:535,1
    - Dst: ndpi_prefix_tochar
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:535,1
    - Dst: ndpi_prefix_tochar
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:535,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:538,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:539,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - patricia
    - prefix
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_prefix_t*
    constantsTouched: []
    func_position:
      end: 545
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 545
    functionName: ndpi_patricia_search_exact
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ndpi_prefix_toa
    - ndpi_prefix_tochar
    - assert
    - ndpi_comp_with_mask
    - BIT_TEST
    - ndpi_prefix_touchar
    linkageType: ''
    returnType: ndpi_patricia_node_t
    signature: 'ndpi_patricia_node_t *

      ndpi_patricia_search_exact (ndpi_patricia_tree_t *patricia, ndpi_prefix_t *prefix)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:561,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:562,1
    - Dst: ndpi_prefix_touchar
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:570,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:576,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:577,1
    - Dst: BIT_TEST
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:582,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:585,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:586,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:588,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:595,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:596,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:598,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:610,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:611,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:612,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:619,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:621,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:622,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:624,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:633,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:634,1
    - Dst: ndpi_comp_with_mask
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:636,1
    - Dst: ndpi_prefix_tochar
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:636,1
    - Dst: ndpi_prefix_tochar
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:637,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:640,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:641,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - patricia
    - prefix
    - inclusive
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_prefix_t*
    - int
    constantsTouched: []
    func_position:
      end: 648
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 648
    functionName: ndpi_patricia_search_best2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ndpi_prefix_toa
    - ndpi_prefix_tochar
    - assert
    - ndpi_comp_with_mask
    - BIT_TEST
    - ndpi_prefix_touchar
    linkageType: ''
    returnType: ndpi_patricia_node_t
    signature: 'ndpi_patricia_node_t *

      ndpi_patricia_search_best2 (ndpi_patricia_tree_t *patricia, ndpi_prefix_t *prefix,
      int inclusive)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_patricia_search_best2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - patricia
    - prefix
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_prefix_t*
    constantsTouched: []
    func_position:
      end: 655
      start: 651
    functionDepth: 3
    functionLinenumber: 651
    functionLinenumberEnd: 655
    functionName: ndpi_patricia_search_best
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 16
    functionsReached:
    - ndpi_patricia_search_best2
    linkageType: ''
    returnType: ndpi_patricia_node_t
    signature: 'ndpi_patricia_node_t *

      ndpi_patricia_search_best (ndpi_patricia_tree_t *patricia, ndpi_prefix_t *prefix)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:670,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:671,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:674,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:675,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:678,1
    - Dst: ndpi_Ref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:682,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:684,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:692,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:693,1
    - Dst: ndpi_prefix_touchar
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:699,1
    - Dst: BIT_TEST
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:705,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:710,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:711,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:713,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:722,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:723,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:725,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:730,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:733,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:735,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:736,1
    - Dst: ndpi_prefix_touchar
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:739,1
    - Dst: BIT_TEST
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:752,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:756,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:764,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:773,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:774,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:776,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:783,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:784,1
    - Dst: ndpi_Ref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:788,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:793,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:794,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:796,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:800,1
    - Dst: ndpi_Ref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:803,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:805,1
    - Dst: BIT_TEST
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:816,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:817,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:821,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:825,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:826,1
    - Dst: BIT_TEST
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:833,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:841,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:852,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:853,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:857,1
    - Dst: ndpi_Deref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:860,1
    - Dst: ndpi_DeleteEntry
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:861,1
    - Dst: BIT_TEST
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:871,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:882,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:893,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:894,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 164
    argCount: 2
    argNames:
    - patricia
    - prefix
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_prefix_t*
    constantsTouched: []
    func_position:
      end: 898
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 898
    functionName: ndpi_patricia_lookup
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 4
    functionsReached:
    - fprintf
    - ndpi_prefix_toa
    - ndpi_free
    - ndpi_calloc
    - ndpi_Ref_Prefix
    - assert
    - ndpi_Deref_Prefix
    - ndpi_DeleteEntry
    - BIT_TEST
    - ndpi_prefix_touchar
    linkageType: ''
    returnType: ndpi_patricia_node_t
    signature: 'ndpi_patricia_node_t *

      ndpi_patricia_lookup (ndpi_patricia_tree_t *patricia, ndpi_prefix_t *prefix)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:908,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:912,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:913,1
    - Dst: ndpi_Deref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:919,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:928,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:929,1
    - Dst: ndpi_Deref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:932,1
    - Dst: ndpi_DeleteEntry
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:933,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:937,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:947,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:958,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:965,1
    - Dst: ndpi_DeleteEntry
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:969,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:975,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:976,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:982,1
    - Dst: ndpi_Deref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:988,1
    - Dst: ndpi_DeleteEntry
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:989,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:993,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1002,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 71
    argCount: 2
    argNames:
    - patricia
    - node
    argTypes:
    - ndpi_patricia_tree_t*
    - ndpi_patricia_node_t*
    constantsTouched: []
    func_position:
      end: 1005
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 1005
    functionName: ndpi_patricia_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ndpi_prefix_toa
    - ndpi_Deref_Prefix
    - assert
    - ndpi_DeleteEntry
    linkageType: ''
    returnType: void
    signature: void ndpi_patricia_remove (ndpi_patricia_tree_t *patricia, ndpi_patricia_node_t
      *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1026,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1036,1
    - Dst: atol
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1037,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1040,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1041,1
    - Dst: ndpi_my_inet_pton
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1051,1
    - Dst: ndpi_New_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1053,1
    - Dst: inet6_addr
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1058,1
    - Dst: ndpi_New_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1059,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1061,1
    - Dst: ndpi_New_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1064,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - family
    - string
    argTypes:
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 1068
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1068
    functionName: ndpi_ascii2prefix
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - memcpy
    - atol
    - inet6_addr
    - ndpi_New_Prefix
    - assert
    - ndpi_my_inet_pton
    - strchr
    - inet_pton
    linkageType: ''
    returnType: ndpi_prefix_t
    signature: ndpi_prefix_t * ndpi_ascii2prefix (int family, char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_ascii2prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1076,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1077,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1077,1
    - Dst: ndpi_patricia_lookup
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1078,1
    - Dst: ndpi_Deref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - tree
    - string
    argTypes:
    - ndpi_patricia_tree_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1081
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1081
    functionName: ndpi_make_and_lookup
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_prefix_toa
    - ndpi_ascii2prefix
    - ndpi_patricia_lookup
    - ndpi_Deref_Prefix
    linkageType: ''
    returnType: ndpi_patricia_node_t
    signature: 'ndpi_patricia_node_t *

      ndpi_make_and_lookup (ndpi_patricia_tree_t *tree, char *string)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_ascii2prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1089,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1090,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1090,1
    - Dst: patricia_search_exact
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1091,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1092,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1095,1
    - Dst: ndpi_prefix_toa
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1096,1
    - Dst: ndpi_Deref_Prefix
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - tree
    - string
    argTypes:
    - ndpi_patricia_tree_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1100
      start: 1083
    functionDepth: 3
    functionLinenumber: 1083
    functionLinenumberEnd: 1100
    functionName: ndpi_try_search_exact
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_prefix_toa
    - ndpi_ascii2prefix
    - patricia_search_exact
    - ndpi_Deref_Prefix
    linkageType: ''
    returnType: ndpi_patricia_node_t
    signature: 'ndpi_patricia_node_t *

      ndpi_try_search_exact (ndpi_patricia_tree_t *tree, char *string)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_search_exact
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1107,1
    - Dst: patricia_remove
      Src: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c:1108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - tree
    - string
    argTypes:
    - ndpi_patricia_tree_t*
    - char*
    constantsTouched: []
    func_position:
      end: 1109
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1109
    functionName: ndpi_lookup_then_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
    functionUses: 0
    functionsReached:
    - patricia_remove
    - try_search_exact
    linkageType: ''
    returnType: void
    signature: void ndpi_lookup_then_remove (ndpi_patricia_tree_t *tree, char *string)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:244,1
    - Dst: _BitScanForward
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:247,1
    - Dst: _BitScanForward
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - input_num
    argTypes:
    - unsigned long long
    constantsTouched: []
    func_position:
      end: 254
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 254
    functionName: __builtin_ctzll
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _BitScanForward64
    - _BitScanForward
    linkageType: ''
    returnType: int
    signature: int __builtin_ctzll(unsigned long long input_num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:260,1
    - Dst: _BitScanReverse
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:263,1
    - Dst: _BitScanReverse
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - input_num
    argTypes:
    - unsigned long long
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: __builtin_clzll
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _BitScanReverse
    - _BitScanReverse64
    linkageType: ''
    returnType: int
    signature: int __builtin_clzll(unsigned long long input_num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: hammingbackup
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int hammingbackup(uint64_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vaddv_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:328,1
    - Dst: vcnt_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:328,1
    - Dst: vcreate_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:328,1
    - Dst: hammingbackup
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:330,1
    - Dst: __popcnt64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:333,1
    - Dst: hammingbackup
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:337,1
    - Dst: __popcnt
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:340,1
    - Dst: __popcnt
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:340,1
    - Dst: __builtin_popcountll
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:343,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 345
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 345
    functionName: hamming
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - __popcnt64
    - vcnt_u8
    - vaddv_u8
    - __builtin_popcountll
    - hammingbackup
    - __popcnt
    - vcreate_u8
    linkageType: ''
    returnType: int
    signature: int hamming(uint64_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:574,1
    - Dst: __get_cpuid
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 590
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 590
    functionName: cpuid
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - __get_cpuid
    - __cpuid
    linkageType: ''
    returnType: void
    signature: "void cpuid(uint32_t *eax, uint32_t *ebx, uint32_t *ecx,\n                         uint32_t
      *edx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:604,1
    - Dst: cpuid
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 629
    functionName: dynamic_croaring_detect_supported_architectures
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - cpuid
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dynamic_croaring_detect_supported_architectures()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: croaring_detect_supported_architectures
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_detect_supported_architectures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_croaring_detect_supported_architectures
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 657
    functionName: croaring_detect_supported_architectures
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - dynamic_croaring_detect_supported_architectures
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_detect_supported_architectures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_croaring_detect_supported_architectures
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: croaring_detect_supported_architectures
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - dynamic_croaring_detect_supported_architectures
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_detect_supported_architectures()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_croaring_detect_supported_architectures
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 679
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 679
    functionName: croaring_detect_supported_architectures
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 3
    functionsReached:
    - dynamic_croaring_detect_supported_architectures
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_detect_supported_architectures()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 686
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 686
    functionName: croaring_avx2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool croaring_avx2()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 690
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 690
    functionName: croaring_avx2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool croaring_avx2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_detect_supported_architectures
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 694
    functionName: croaring_avx2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - croaring_detect_supported_architectures
    linkageType: ''
    returnType: bool
    signature: bool croaring_avx2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Derived**>
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr_to_ptr
    argTypes:
    - Base**
    constantsTouched: []
    func_position:
      end: 849
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 849
    functionName: roaring::internal::movable_CAST_HELPER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - reinterpret_cast<Derived**>
    linkageType: ''
    returnType: PPDerived
    signature: PPDerived movable_CAST_HELPER(Base **ptr_to_ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 902
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 902
    functionName: roaring::internal::binarySearch
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t binarySearch(const uint16_t *array, int32_t lenarray,\n                            uint16_t
      ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - array
    - pos
    - length
    - min
    argTypes:
    - uint16_t*
    - int32_t
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 954
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 954
    functionName: roaring::internal::advanceUntil
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t advanceUntil(const uint16_t *array, int32_t pos,\n                                   int32_t
      length, uint16_t min)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 965
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 965
    functionName: roaring::internal::count_less
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t count_less(const uint16_t *array, int32_t lenarray,\n                                 uint16_t
      ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 980
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 980
    functionName: roaring::internal::count_greater
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t count_greater(const uint16_t *array, int32_t lenarray,\n                                    uint16_t
      ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1211,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1212,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1215,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1217,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - words
    - start
    - end
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1220
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1220
    functionName: roaring::internal::bitset_set_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void bitset_set_range(uint64_t *words, uint32_t start,\n                                    uint32_t
      end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1232,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1233,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1238,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1241,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - words
    - start
    - lenminusone
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1244
      start: 1226
    functionDepth: 2
    functionLinenumber: 1226
    functionLinenumberEnd: 1244
    functionName: roaring::internal::bitset_lenrange_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    - hamming
    linkageType: ''
    returnType: int
    signature: "int bitset_lenrange_cardinality(const uint64_t *words,\n                                              uint32_t
      start,\n                                              uint32_t lenminusone)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1254,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1257,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - words
    - start
    - lenminusone
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1269
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1269
    functionName: roaring::internal::bitset_lenrange_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: bool
    signature: "bool bitset_lenrange_empty(const uint64_t *words, uint32_t start,\n
      \                                        uint32_t lenminusone)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1280,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1285,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1287,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - words
    - start
    - lenminusone
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1290
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1290
    functionName: roaring::internal::bitset_set_lenrange
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void bitset_set_lenrange(uint64_t *words, uint32_t start,\n                                       uint32_t
      lenminusone)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1300,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - words
    - start
    - end
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1305
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1305
    functionName: roaring::internal::bitset_flip_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void bitset_flip_range(uint64_t *words, uint32_t start,\n                                     uint32_t
      end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1316,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1317,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1320,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1322,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - words
    - start
    - end
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1325
      start: 1310
    functionDepth: 0
    functionLinenumber: 1310
    functionLinenumberEnd: 1325
    functionName: roaring::internal::bitset_reset_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void bitset_reset_range(uint64_t *words, uint32_t start,\n                                      uint32_t
      end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1451,1
    - Dst: _mm256_setr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1461,1
    - Dst: _mm256_set1_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1471,1
    - Dst: _mm256_and_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1473,1
    - Dst: _mm256_and_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1474,1
    - Dst: _mm256_srli_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1474,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1475,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1476,1
    - Dst: _mm256_sad_epu8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m256i
    constantsTouched: []
    func_position:
      end: 1478
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1478
    functionName: roaring::internal::popcount256
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm256_sad_epu8
    - _mm256_srli_epi16
    - _mm256_set1_epi8
    - _mm256_and_si256
    - _mm256_setr_epi8
    - _mm256_shuffle_epi8
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: CROARING_TARGET_AVX2 popcount256(__m256i v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_xor_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1487,1
    - Dst: _mm256_or_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1488,1
    - Dst: _mm256_and_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1488,1
    - Dst: _mm256_and_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1488,1
    - Dst: _mm256_xor_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - h
    - l
    - a
    - b
    - c
    argTypes:
    - __m256i*
    - __m256i*
    - __m256i
    - __m256i
    - __m256i
    constantsTouched: []
    func_position:
      end: 1490
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1490
    functionName: roaring::internal::CSA
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm256_or_si256
    - _mm256_and_si256
    - _mm256_xor_si256
    linkageType: ''
    returnType: void
    signature: "void CSA(__m256i *h, __m256i *l, __m256i a, __m256i b,\n                       __m256i
      c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1499,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1500,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1501,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1502,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1503,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1504,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1511,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1511,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1512,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1513,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1513,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1514,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1515,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1516,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1516,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1517,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1518,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1518,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1519,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1520,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1521,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1522,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1522,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1523,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1524,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1524,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1525,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1526,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1527,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1527,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1528,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1529,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1529,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1530,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1531,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1532,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1533,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1535,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1535,1
    - Dst: _mm256_slli_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1538,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1539,1
    - Dst: _mm256_slli_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1540,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1540,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1541,1
    - Dst: _mm256_slli_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1542,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1542,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1543,1
    - Dst: _mm256_slli_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1544,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1544,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1545,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1545,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1548,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1548,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1548,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1550,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1551,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1552,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - __m256i*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1554
      start: 1497
    functionDepth: 0
    functionLinenumber: 1497
    functionLinenumberEnd: 1554
    functionName: roaring::internal::avx2_harley_seal_popcount256
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::popcount256
    - _mm256_extract_epi64
    - roaring::internal::CSA
    - _mm256_add_epi64
    - _mm256_lddqu_si256
    - _mm256_slli_epi64
    - _mm256_setzero_si256
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t avx2_harley_seal_popcount256(const __m256i *data,\n                                                    const
      uint64_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1805
    functionDepth: 0
    functionLinenumber: 1805
    functionLinenumberEnd: 1809
    functionName: roaring::internal::STRUCT_CONTAINER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STRUCT_CONTAINER(array_container_s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1843
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1843
    functionName: roaring::internal::array_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: ALLOW_UNALIGNED array_container_cardinality(const array_container_t
      *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1848
      start: 1845
    functionDepth: 0
    functionLinenumber: 1845
    functionLinenumberEnd: 1848
    functionName: roaring::internal::array_container_nonzero_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_nonzero_cardinality(\n    const array_container_t
      *array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1862
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1862
    functionName: roaring::internal::array_container_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool array_container_empty(const array_container_t *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1868
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1868
    functionName: roaring::internal::array_container_full
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool array_container_full(const array_container_t *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - card
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 1937
      start: 1935
    functionDepth: 0
    functionLinenumber: 1935
    functionLinenumberEnd: 1937
    functionName: roaring::internal::array_container_serialized_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t array_container_serialized_size_in_bytes(int32_t card)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - container
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1984
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 1984
    functionName: roaring::internal::array_container_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t array_container_size_in_bytes(\n    const array_container_t
      *container)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::memequals
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:1997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1998
      start: 1989
    functionDepth: 0
    functionLinenumber: 1989
    functionLinenumberEnd: 1998
    functionName: roaring::internal::array_container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::memequals
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED array_container_equals(\n    const array_container_t
      *container1,\n    const array_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - container
    - start_rank
    - rank
    - element
    argTypes:
    - array_container_t*
    - uint32_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 2023
      start: 2012
    functionDepth: 0
    functionLinenumber: 2012
    functionLinenumberEnd: 2023
    functionName: roaring::internal::array_container_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_select(const array_container_t *container,\n
      \                                         uint32_t *start_rank, uint32_t rank,\n
      \                                         uint32_t *element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2039,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - arr
    - pos
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2044
      start: 2035
    functionDepth: 0
    functionLinenumber: 2035
    functionLinenumberEnd: 2044
    functionName: roaring::internal::array_container_append
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_full
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_append(array_container_t *arr,\n                                          uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2058,1
    - Dst: roaring::internal::array_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2060,1
    - Dst: roaring::internal::array_container_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2069,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2070,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2073,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - arr
    - value
    - max_cardinality
    argTypes:
    - array_container_t*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2081
      start: 2053
    functionDepth: 0
    functionLinenumber: 2053
    functionLinenumberEnd: 2081
    functionName: roaring::internal::array_container_try_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_full
    - roaring::internal::array_container_append
    - memmove
    - roaring::internal::array_container_empty
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: int
    signature: "int array_container_try_add(array_container_t *arr, uint16_t value,\n
      \                                         int32_t max_cardinality)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_try_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arr
    - value
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2086
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2086
    functionName: roaring::internal::array_container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_try_add
    linkageType: ''
    returnType: bool
    signature: bool array_container_add(array_container_t *arr, uint16_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arr
    - pos
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2100
      start: 2089
    functionDepth: 0
    functionLinenumber: 2089
    functionLinenumberEnd: 2100
    functionName: roaring::internal::array_container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: bool
    signature: "bool array_container_remove(array_container_t *arr,\n                                          uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - arr
    - pos
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2133
      start: 2103
    functionDepth: 0
    functionLinenumber: 2103
    functionLinenumberEnd: 2133
    functionName: roaring::internal::array_container_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_contains(const array_container_t *arr,\n                                     uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - arr
    - range_start
    - range_end
    argTypes:
    - array_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2160
      start: 2140
    functionDepth: 0
    functionLinenumber: 2140
    functionLinenumberEnd: 2160
    functionName: roaring::internal::array_container_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_contains_range(const array_container_t *arr,\n
      \                                                   uint32_t range_start, uint32_t
      range_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arr
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 2166
      start: 2163
    functionDepth: 0
    functionLinenumber: 2163
    functionLinenumberEnd: 2166
    functionName: roaring::internal::array_container_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t array_container_minimum(const array_container_t *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arr
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 2172
      start: 2169
    functionDepth: 0
    functionLinenumber: 2169
    functionLinenumberEnd: 2172
    functionName: roaring::internal::array_container_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t array_container_maximum(const array_container_t *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arr
    - x
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2183
      start: 2175
    functionDepth: 0
    functionLinenumber: 2175
    functionLinenumberEnd: 2183
    functionName: roaring::internal::array_container_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int array_container_rank(const array_container_t *arr, uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - arr
    - x
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2196
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2196
    functionName: roaring::internal::array_container_index_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int array_container_index_equalorlarger(const array_container_t *arr,
      uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2210,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - array
    - min
    - max
    - nvals_less
    - nvals_greater
    argTypes:
    - array_container_t*
    - uint32_t
    - uint32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 2219
      start: 2203
    functionDepth: 0
    functionLinenumber: 2203
    functionLinenumberEnd: 2219
    functionName: roaring::internal::array_container_add_range_nvals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_add_range_nvals(array_container_t *array,\n                                                   uint32_t
      min, uint32_t max,\n                                                   int32_t
      nvals_less,\n                                                   int32_t nvals_greater)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - array
    - pos
    - count
    argTypes:
    - array_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2242
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2242
    functionName: roaring::internal::array_container_remove_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: "void array_container_remove_range(array_container_t *array,\n                                                uint32_t
      pos, uint32_t count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2281
    functionDepth: 0
    functionLinenumber: 2281
    functionLinenumberEnd: 2284
    functionName: roaring::internal::STRUCT_CONTAINER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STRUCT_CONTAINER(bitset_container_s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASM_SHIFT_RIGHT
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2320,1
    - Dst: ASM_SET_BIT_INC_WAS_CLEAR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2324
      start: 2315
    functionDepth: 0
    functionLinenumber: 2315
    functionLinenumberEnd: 2324
    functionName: roaring::internal::bitset_container_set
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ASM_SET_BIT_INC_WAS_CLEAR
    - ASM_SHIFT_RIGHT
    linkageType: ''
    returnType: void
    signature: "void bitset_container_set(bitset_container_t *bitset,\n                                        uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASM_SHIFT_RIGHT
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2345,1
    - Dst: ASM_SET_BIT_INC_WAS_CLEAR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2352
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2352
    functionName: roaring::internal::bitset_container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ASM_SET_BIT_INC_WAS_CLEAR
    - ASM_SHIFT_RIGHT
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_add(bitset_container_t *bitset,\n                                        uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASM_SHIFT_RIGHT
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2361,1
    - Dst: ASM_CLEAR_BIT_DEC_WAS_SET
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2368
      start: 2356
    functionDepth: 0
    functionLinenumber: 2356
    functionLinenumberEnd: 2368
    functionName: roaring::internal::bitset_container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ASM_CLEAR_BIT_DEC_WAS_SET
    - ASM_SHIFT_RIGHT
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_remove(bitset_container_t *bitset,\n                                           uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASM_INPLACESHIFT_RIGHT
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2377
      start: 2371
    functionDepth: 0
    functionLinenumber: 2371
    functionLinenumberEnd: 2377
    functionName: roaring::internal::bitset_container_get
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ASM_INPLACESHIFT_RIGHT
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_get(const bitset_container_t *bitset,\n                                 uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2389
      start: 2382
    functionDepth: 0
    functionLinenumber: 2382
    functionLinenumberEnd: 2389
    functionName: roaring::internal::bitset_container_set
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bitset_container_set(bitset_container_t *bitset,\n                                        uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2412
      start: 2403
    functionDepth: 0
    functionLinenumber: 2403
    functionLinenumberEnd: 2412
    functionName: roaring::internal::bitset_container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_add(bitset_container_t *bitset,\n                                        uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2425
      start: 2416
    functionDepth: 0
    functionLinenumber: 2416
    functionLinenumberEnd: 2425
    functionName: roaring::internal::bitset_container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_remove(bitset_container_t *bitset,\n                                           uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2432
      start: 2428
    functionDepth: 0
    functionLinenumber: 2428
    functionLinenumberEnd: 2432
    functionName: roaring::internal::bitset_container_get
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_get(const bitset_container_t *bitset,\n                                 uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - bitset
    - pos_start
    - pos_end
    argTypes:
    - bitset_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2463
      start: 2440
    functionDepth: 0
    functionLinenumber: 2440
    functionLinenumberEnd: 2463
    functionName: roaring::internal::bitset_container_get_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_get_range(const bitset_container_t *bitset,\n
      \                                               uint32_t pos_start, uint32_t
      pos_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_get
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2469
      start: 2466
    functionDepth: 0
    functionLinenumber: 2466
    functionLinenumberEnd: 2469
    functionName: roaring::internal::bitset_container_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_get
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_contains(const bitset_container_t *bitset,\n
      \                                     uint16_t pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_get_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bitset
    - pos_start
    - pos_end
    argTypes:
    - bitset_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2478
      start: 2475
    functionDepth: 0
    functionLinenumber: 2475
    functionLinenumberEnd: 2478
    functionName: roaring::internal::bitset_container_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_get_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_contains_range(const bitset_container_t *bitset,\n
      \         uint32_t pos_start, uint32_t pos_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 2485
      start: 2481
    functionDepth: 0
    functionLinenumber: 2481
    functionLinenumberEnd: 2485
    functionName: roaring::internal::bitset_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED bitset_container_cardinality(\n    const bitset_container_t
      *bitset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 2516
      start: 2506
    functionDepth: 0
    functionLinenumber: 2506
    functionLinenumberEnd: 2516
    functionName: roaring::internal::bitset_container_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_empty(\n    const bitset_container_t *bitset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 2524
      start: 2521
    functionDepth: 0
    functionLinenumber: 2521
    functionLinenumberEnd: 2524
    functionName: roaring::internal::bitset_container_const_nonzero_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_empty
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_const_nonzero_cardinality(\n    const bitset_container_t
      *bitset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2658
      start: 2656
    functionDepth: 0
    functionLinenumber: 2656
    functionLinenumberEnd: 2658
    functionName: roaring::internal::bitset_container_serialized_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t bitset_container_serialized_size_in_bytes(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - container
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 2700
      start: 2696
    functionDepth: 0
    functionLinenumber: 2696
    functionLinenumberEnd: 2700
    functionName: roaring::internal::bitset_container_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t bitset_container_size_in_bytes(\n    const bitset_container_t
      *container)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2797
    functionDepth: 0
    functionLinenumber: 2797
    functionLinenumberEnd: 2801
    functionName: roaring::internal::STRUCT_CONTAINER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STRUCT_CONTAINER(run_container_s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - run
    - index
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2834
      start: 2830
    functionDepth: 0
    functionLinenumber: 2830
    functionLinenumberEnd: 2834
    functionName: roaring::internal::recoverRoomAtIndex
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void recoverRoomAtIndex(run_container_t *run, uint16_t index)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - rle16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2855
      start: 2839
    functionDepth: 0
    functionLinenumber: 2839
    functionLinenumberEnd: 2855
    functionName: roaring::internal::interleavedBinarySearch
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t interleavedBinarySearch(const rle16_t *array, int32_t lenarray,\n
      \                                      uint16_t ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - rle16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2877
      start: 2860
    functionDepth: 0
    functionLinenumber: 2860
    functionLinenumberEnd: 2877
    functionName: roaring::internal::rle16_find_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t rle16_find_run(const rle16_t *array, int32_t lenarray,\n                                     uint16_t
      ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2894,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - array
    - lenarray
    - key
    argTypes:
    - rle16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2903
      start: 2885
    functionDepth: 0
    functionLinenumber: 2885
    functionLinenumberEnd: 2903
    functionName: roaring::internal::rle16_count_less
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: int32_t
    signature: "int32_t rle16_count_less(const rle16_t* array, int32_t lenarray,\n
      \                                      uint16_t key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - array
    - lenarray
    - key
    argTypes:
    - rle16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2923
      start: 2905
    functionDepth: 0
    functionLinenumber: 2905
    functionLinenumberEnd: 2923
    functionName: roaring::internal::rle16_count_greater
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: int32_t
    signature: "int32_t rle16_count_greater(const rle16_t* array, int32_t lenarray,\n
      \                                         uint16_t key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2940,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - run
    - index
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2944
      start: 2935
    functionDepth: 0
    functionLinenumber: 2935
    functionLinenumberEnd: 2944
    functionName: roaring::internal::makeRoomAtIndex
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_grow
    - memmove
    linkageType: ''
    returnType: void
    signature: void makeRoomAtIndex(run_container_t *run, uint16_t index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::recoverRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2955,1
    - Dst: roaring::internal::makeRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:2972,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - run
    - pos
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2984
      start: 2950
    functionDepth: 0
    functionLinenumber: 2950
    functionLinenumberEnd: 2984
    functionName: roaring::internal::run_container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::recoverRoomAtIndex
    - roaring::internal::makeRoomAtIndex
    linkageType: ''
    returnType: bool
    signature: bool run_container_remove(run_container_t *run, uint16_t pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - run
    - pos
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2997
      start: 2987
    functionDepth: 0
    functionLinenumber: 2987
    functionLinenumberEnd: 2997
    functionName: roaring::internal::run_container_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_container_contains(const run_container_t *run, uint16_t pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - run
    - pos_start
    - pos_end
    argTypes:
    - run_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3024
      start: 3003
    functionDepth: 0
    functionLinenumber: 3003
    functionLinenumberEnd: 3024
    functionName: roaring::internal::run_container_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool run_container_contains_range(const run_container_t *run,\n                                                uint32_t
      pos_start, uint32_t pos_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 3033
      start: 3030
    functionDepth: 0
    functionLinenumber: 3030
    functionLinenumberEnd: 3033
    functionName: roaring::internal::run_container_nonzero_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool run_container_nonzero_cardinality(\n    const run_container_t
      *run)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 3039
      start: 3036
    functionDepth: 0
    functionLinenumber: 3036
    functionLinenumberEnd: 3039
    functionName: roaring::internal::run_container_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool run_container_empty(\n    const run_container_t *run)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - run
    - vl
    - previousrl
    argTypes:
    - run_container_t*
    - rle16_t
    - rle16_t*
    constantsTouched: []
    func_position:
      end: 3070
      start: 3056
    functionDepth: 0
    functionLinenumber: 3056
    functionLinenumberEnd: 3070
    functionName: roaring::internal::run_container_append
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void run_container_append(run_container_t *run, rle16_t vl,\n                                        rle16_t
      *previousrl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - run
    - vl
    argTypes:
    - run_container_t*
    - rle16_t
    constantsTouched: []
    func_position:
      end: 3080
      start: 3075
    functionDepth: 0
    functionLinenumber: 3075
    functionLinenumberEnd: 3080
    functionName: roaring::internal::run_container_append_first
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rle16_t
    signature: "rle16_t run_container_append_first(run_container_t *run,\n                                                 rle16_t
      vl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - run
    - val
    - previousrl
    argTypes:
    - run_container_t*
    - uint16_t
    - rle16_t*
    constantsTouched: []
    func_position:
      end: 3103
      start: 3091
    functionDepth: 0
    functionLinenumber: 3091
    functionLinenumberEnd: 3103
    functionName: roaring::internal::run_container_append_value
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - MAKE_RLE16
    linkageType: ''
    returnType: void
    signature: "void run_container_append_value(run_container_t *run,\n                                              uint16_t
      val,\n                                              rle16_t *previousrl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - run
    - val
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 3115
      start: 3109
    functionDepth: 0
    functionLinenumber: 3109
    functionLinenumberEnd: 3115
    functionName: roaring::internal::run_container_append_value_first
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - MAKE_RLE16
    linkageType: ''
    returnType: rle16_t
    signature: "rle16_t run_container_append_value_first(run_container_t *run,\n                                                       uint16_t
      val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 3122
      start: 3119
    functionDepth: 0
    functionLinenumber: 3119
    functionLinenumberEnd: 3122
    functionName: roaring::internal::run_container_is_full
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_container_is_full(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_runs
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 3184
      start: 3181
    functionDepth: 0
    functionLinenumber: 3181
    functionLinenumberEnd: 3184
    functionName: roaring::internal::run_container_serialized_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t run_container_serialized_size_in_bytes(int32_t num_runs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_serialized_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - container
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 3219
      start: 3216
    functionDepth: 0
    functionLinenumber: 3216
    functionLinenumberEnd: 3219
    functionName: roaring::internal::run_container_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_serialized_size_in_bytes
    linkageType: ''
    returnType: int32_t
    signature: "int32_t run_container_size_in_bytes(\n    const run_container_t *container)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::memequals
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 3232
      start: 3224
    functionDepth: 0
    functionLinenumber: 3224
    functionLinenumberEnd: 3232
    functionName: roaring::internal::run_container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::memequals
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED run_container_equals(const run_container_t *container1,\n
      \                         const run_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3257,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - start
    - stop
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3265
      start: 3255
    functionDepth: 0
    functionLinenumber: 3255
    functionLinenumberEnd: 3265
    functionName: roaring::internal::run_container_create_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::run_container_append_first
    linkageType: ''
    returnType: run_container_t
    signature: "run_container_t *run_container_create_range(uint32_t start,\n                                                          uint32_t
      stop)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 3291
      start: 3288
    functionDepth: 0
    functionLinenumber: 3288
    functionLinenumberEnd: 3291
    functionName: roaring::internal::run_container_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t run_container_minimum(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 3297
      start: 3294
    functionDepth: 0
    functionLinenumber: 3294
    functionLinenumberEnd: 3297
    functionName: roaring::internal::run_container_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t run_container_maximum(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - arr
    - x
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 3317
      start: 3303
    functionDepth: 0
    functionLinenumber: 3303
    functionLinenumberEnd: 3317
    functionName: roaring::internal::run_container_index_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int run_container_index_equalorlarger(const run_container_t *arr, uint16_t
      x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::makeRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3328,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - run
    - min
    - max
    - nruns_less
    - nruns_greater
    argTypes:
    - run_container_t*
    - uint32_t
    - uint32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 3346
      start: 3322
    functionDepth: 0
    functionLinenumber: 3322
    functionLinenumberEnd: 3346
    functionName: roaring::internal::run_container_add_range_nruns
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::makeRoomAtIndex
    - memmove
    linkageType: ''
    returnType: void
    signature: "void run_container_add_range_nruns(run_container_t* run,\n                                                 uint32_t
      min, uint32_t max,\n                                                 int32_t
      nruns_less,\n                                                 int32_t nruns_greater)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3366,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - run
    - count
    - distance
    argTypes:
    - run_container_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 3373
      start: 3362
    functionDepth: 0
    functionLinenumber: 3362
    functionLinenumberEnd: 3373
    functionName: roaring::internal::run_container_shift_tail
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_grow
    - memmove
    linkageType: ''
    returnType: void
    signature: "void run_container_shift_tail(run_container_t* run,\n                                            int32_t
      count, int32_t distance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::makeRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3387,1
    - Dst: roaring::internal::run_container_shift_tail
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:3421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - run
    - min
    - max
    argTypes:
    - run_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3423
      start: 3378
    functionDepth: 0
    functionLinenumber: 3378
    functionLinenumberEnd: 3423
    functionName: roaring::internal::run_container_remove_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::makeRoomAtIndex
    - roaring::internal::run_container_shift_tail
    linkageType: ''
    returnType: void
    signature: void run_container_remove_range(run_container_t *run, uint32_t min,
      uint32_t max)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4347
    functionDepth: 0
    functionLinenumber: 4347
    functionLinenumberEnd: 4351
    functionName: roaring::internal::STRUCT_CONTAINER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STRUCT_CONTAINER(shared_container_s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4385,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4386,1
    - Dst: const_CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - candidate_shared_container
    - type
    argTypes:
    - container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4391
      start: 4381
    functionDepth: 0
    functionLinenumber: 4381
    functionLinenumberEnd: 4391
    functionName: roaring::internal::container_unwrap_shared
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - assert
    - const_CAST_shared
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_unwrap_shared(\n    const container_t *candidate_shared_container,
      uint8_t *type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4399,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4400,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4405
      start: 4395
    functionDepth: 0
    functionLinenumber: 4395
    functionLinenumberEnd: 4405
    functionName: roaring::internal::container_mutable_unwrap_shared
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - CAST_shared
    - assert
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_mutable_unwrap_shared(\n    container_t *c,
      uint8_t *type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4416
      start: 4408
    functionDepth: 0
    functionLinenumber: 4408
    functionLinenumberEnd: 4416
    functionName: roaring::internal::get_container_type
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_shared
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t get_container_type(\n    const container_t *c, uint8_t type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::shared_container_extract_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4430,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4434
      start: 4426
    functionDepth: 0
    functionLinenumber: 4426
    functionLinenumberEnd: 4434
    functionName: roaring::internal::get_writable_copy_if_shared
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - CAST_shared
    - roaring::internal::shared_container_extract_copy
    linkageType: ''
    returnType: container_t
    signature: "container_t *get_writable_copy_if_shared(\n    container_t *c, uint8_t
      *type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4454,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4456,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4456,1
    - Dst: roaring::internal::bitset_container_from_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4459,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4459,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4462,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4464,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4467
      start: 4448
    functionDepth: 0
    functionLinenumber: 4448
    functionLinenumberEnd: 4467
    functionName: roaring::internal::container_to_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - CAST_bitset
    - assert
    - roaring::internal::bitset_container_from_run
    - CAST_array
    - __builtin_unreachable
    - CAST_run
    linkageType: ''
    returnType: bitset_container_t
    signature: "bitset_container_t *container_to_bitset(\n    container_t *c, uint8_t
      typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4501,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4509,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4510,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4515,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4516,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4521
      start: 4490
    functionDepth: 0
    functionLinenumber: 4490
    functionLinenumberEnd: 4521
    functionName: roaring::internal::get_full_container_name
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - assert
    - __builtin_unreachable
    - const_CAST_shared
    linkageType: ''
    returnType: char
    signature: "char *get_full_container_name(\n    const container_t *c, uint8_t
      typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4529,1
    - Dst: roaring::internal::bitset_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4532,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4532,1
    - Dst: roaring::internal::array_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4534,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4534,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4536,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4536,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4538,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4541
      start: 4526
    functionDepth: 0
    functionLinenumber: 4526
    functionLinenumberEnd: 4541
    functionName: roaring::internal::container_get_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_run
    - roaring::internal::bitset_container_cardinality
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - roaring::internal::run_container_cardinality
    - __builtin_unreachable
    - roaring::internal::array_container_cardinality
    linkageType: ''
    returnType: int
    signature: "int container_get_cardinality(\n    const container_t *c, uint8_t
      typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4549,1
    - Dst: roaring::internal::bitset_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4552,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4553,1
    - Dst: roaring::internal::array_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4555,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4556,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4558,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4558,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4560,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4563
      start: 4548
    functionDepth: 0
    functionLinenumber: 4548
    functionLinenumberEnd: 4563
    functionName: roaring::internal::container_is_full
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_run
    - roaring::internal::bitset_container_cardinality
    - roaring::internal::run_container_is_full
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - roaring::internal::array_container_cardinality
    linkageType: ''
    returnType: bool
    signature: bool container_is_full(const container_t *c, uint8_t typecode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_mutable_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4568,1
    - Dst: roaring::internal::array_container_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4573,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4573,1
    - Dst: roaring::internal::run_container_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4575,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4575,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4577,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4580
      start: 4565
    functionDepth: 0
    functionLinenumber: 4565
    functionLinenumberEnd: 4580
    functionName: roaring::internal::container_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_shrink_to_fit
    - roaring::internal::container_mutable_unwrap_shared
    - assert
    - CAST_array
    - __builtin_unreachable
    - roaring::internal::array_container_shrink_to_fit
    - CAST_run
    linkageType: ''
    returnType: int
    signature: "int container_shrink_to_fit(\n    container_t *c, uint8_t type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4593,1
    - Dst: roaring::internal::array_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4597,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - range_start
    - range_end
    - result_type
    argTypes:
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4602
      start: 4589
    functionDepth: 0
    functionLinenumber: 4589
    functionLinenumberEnd: 4602
    functionName: roaring::internal::container_range_of_ones
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_create_range
    - assert
    - roaring::internal::array_container_create_range
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_range_of_ones(\n    uint32_t range_start, uint32_t
      range_end,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4613,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4621,1
    - Dst: roaring::internal::array_container_add_from_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4622,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4623,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4627,1
    - Dst: roaring::internal::bitset_container_add_from_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4628,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - type
    - min
    - max
    - step
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 4632
      start: 4607
    functionDepth: 0
    functionLinenumber: 4607
    functionLinenumberEnd: 4632
    functionName: roaring::internal::container_from_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_container_add_from_range
    - assert
    - roaring::internal::array_container_add_from_range
    - roaring::internal::container_range_of_ones
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_from_range(\n    uint8_t *type, uint32_t min,\n
      \   uint32_t max, uint16_t step\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4640,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4644,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4645,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4647,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4648,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4656,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4657,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4659,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4661,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4664
      start: 4637
    functionDepth: 0
    functionLinenumber: 4637
    functionLinenumberEnd: 4664
    functionName: roaring::internal::container_repair_after_lazy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::array_container_from_bitset
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - roaring::internal::convert_run_to_efficient_container_and_free
    - __builtin_unreachable
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_repair_after_lazy(\n    container_t *c, uint8_t
      *type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4678,1
    - Dst: roaring::internal::bitset_container_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4681,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4681,1
    - Dst: roaring::internal::array_container_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4683,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4683,1
    - Dst: roaring::internal::run_container_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4685,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4685,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4687,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - c
    - typecode
    - buf
    argTypes:
    - container_t*
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 4690
      start: 4674
    functionDepth: 0
    functionLinenumber: 4674
    functionLinenumberEnd: 4690
    functionName: roaring::internal::container_write
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_write
    - roaring::internal::run_container_write
    - roaring::internal::array_container_write
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: int32_t
    signature: "int32_t container_write(\n    const container_t *c, uint8_t typecode,\n
      \   char *buf\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4700,1
    - Dst: roaring::internal::bitset_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4703,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4703,1
    - Dst: roaring::internal::array_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4705,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4705,1
    - Dst: roaring::internal::run_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4707,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4707,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4709,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4712
      start: 4697
    functionDepth: 0
    functionLinenumber: 4697
    functionLinenumberEnd: 4712
    functionName: roaring::internal::container_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_size_in_bytes
    - roaring::internal::bitset_container_size_in_bytes
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring::internal::run_container_size_in_bytes
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: int32_t
    signature: "int32_t container_size_in_bytes(\n    const container_t *c, uint8_t
      typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4734,1
    - Dst: roaring::internal::bitset_container_const_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4737,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4738,1
    - Dst: roaring::internal::array_container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4740,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4740,1
    - Dst: roaring::internal::run_container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4742,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4742,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4744,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4747
      start: 4731
    functionDepth: 0
    functionLinenumber: 4731
    functionLinenumberEnd: 4747
    functionName: roaring::internal::container_nonzero_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_nonzero_cardinality
    - roaring::internal::bitset_container_const_nonzero_cardinality
    - roaring::internal::run_container_nonzero_cardinality
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_nonzero_cardinality(\n    const container_t *c, uint8_t
      typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4764,1
    - Dst: roaring::internal::bitset_container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4767,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4768,1
    - Dst: roaring::internal::array_container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4770,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4771,1
    - Dst: roaring::internal::run_container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4773,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4774,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4776,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - output
    - c
    - typecode
    - base
    argTypes:
    - uint32_t*
    - container_t*
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4779
      start: 4759
    functionDepth: 0
    functionLinenumber: 4759
    functionLinenumberEnd: 4779
    functionName: roaring::internal::container_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_to_uint32_array
    - roaring::internal::run_container_to_uint32_array
    - roaring::internal::bitset_container_to_uint32_array
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: int
    signature: "int container_to_uint32_array(\n    uint32_t *output,\n    const container_t
      *c, uint8_t typecode,\n    uint32_t base\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4792,1
    - Dst: roaring::internal::bitset_container_set
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4795,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4795,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4799,1
    - Dst: roaring::internal::array_container_try_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4800,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4804,1
    - Dst: roaring::internal::bitset_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4805,1
    - Dst: roaring::internal::run_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4812,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4812,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4816,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - c
    - val
    - typecode
    - new_typecode
    argTypes:
    - container_t*
    - uint16_t
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4820
      start: 4787
    functionDepth: 0
    functionLinenumber: 4787
    functionLinenumberEnd: 4820
    functionName: roaring::internal::container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - roaring::internal::bitset_container_add
    - CAST_bitset
    - roaring::internal::bitset_container_set
    - roaring::internal::run_container_add
    - roaring::internal::array_container_try_add
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - CAST_array
    - __builtin_unreachable
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_add(\n    container_t *c, uint16_t val,\n    uint8_t
      typecode,  // !!! should be second argument?\n    uint8_t *new_typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4834,1
    - Dst: roaring::internal::bitset_container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4837,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4837,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4841,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4841,1
    - Dst: roaring::internal::array_container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4848,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4848,1
    - Dst: roaring::internal::run_container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4852,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4852,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4856,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 4
    argNames:
    - c
    - val
    - typecode
    - new_typecode
    argTypes:
    - container_t*
    - uint16_t
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4860
      start: 4829
    functionDepth: 0
    functionLinenumber: 4829
    functionLinenumberEnd: 4860
    functionName: roaring::internal::container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - CAST_bitset
    - CAST_run
    - roaring::internal::bitset_container_remove
    - roaring::internal::array_container_from_bitset
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - CAST_array
    - roaring::internal::array_container_remove
    - __builtin_unreachable
    - roaring::internal::run_container_remove
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_remove(\n    container_t *c, uint16_t val,\n
      \   uint8_t typecode,  // !!! should be second argument?\n    uint8_t *new_typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4870,1
    - Dst: roaring::internal::bitset_container_get
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4873,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4873,1
    - Dst: roaring::internal::array_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4875,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4875,1
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4877,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4877,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4879,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - c
    - val
    - typecode
    argTypes:
    - container_t*
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4883
      start: 4865
    functionDepth: 0
    functionLinenumber: 4865
    functionLinenumberEnd: 4883
    functionName: roaring::internal::container_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_array
    - assert
    - roaring::internal::bitset_container_get
    - roaring::internal::container_unwrap_shared
    - roaring::internal::run_container_contains
    - roaring::internal::array_container_contains
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_contains(\n    const container_t *c,\n    uint16_t
      val,\n    uint8_t typecode  // !!! should be second argument?\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4894,1
    - Dst: roaring::internal::bitset_container_get_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4897,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4897,1
    - Dst: roaring::internal::array_container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4900,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4900,1
    - Dst: roaring::internal::run_container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4903,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4903,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4906,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - c
    - range_start
    - range_end
    - typecode
    argTypes:
    - container_t*
    - uint32_t
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4910
      start: 4889
    functionDepth: 0
    functionLinenumber: 4889
    functionLinenumberEnd: 4910
    functionName: roaring::internal::container_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_contains_range
    - roaring::internal::bitset_container_get_range
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring::internal::run_container_contains_range
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_contains_range(\n    const container_t *c,\n    uint32_t
      range_start, uint32_t range_end,\n    uint8_t typecode  // !!! should be second
      argument?\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4920,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4921,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4922,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4923,1
    - Dst: roaring::internal::bitset_container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4924,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4924,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4925,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4927,1
    - Dst: roaring::internal::run_container_equals_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4928,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4928,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4929,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4931,1
    - Dst: roaring::internal::run_container_equals_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4932,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4932,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4933,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4935,1
    - Dst: roaring::internal::array_container_equal_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4937,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4937,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4938,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4940,1
    - Dst: roaring::internal::array_container_equal_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4942,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4942,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4943,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4945,1
    - Dst: roaring::internal::run_container_equals_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4946,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4946,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4947,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4949,1
    - Dst: roaring::internal::run_container_equals_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4950,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4950,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4951,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4953,1
    - Dst: roaring::internal::array_container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4954,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4954,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4955,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4957,1
    - Dst: roaring::internal::run_container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4958,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4958,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4959,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4962,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - c1
    - type1
    - c2
    - type2
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4966
      start: 4916
    functionDepth: 0
    functionLinenumber: 4916
    functionLinenumberEnd: 4966
    functionName: roaring::internal::container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_equals
    - roaring::internal::run_container_equals_array
    - roaring::internal::bitset_container_equals
    - roaring::internal::run_container_equals_bitset
    - roaring::internal::array_container_equals
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_equal_bitset
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_equals(\n    const container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4976,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4977,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4978,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4979,1
    - Dst: roaring::internal::bitset_container_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4980,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4980,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4981,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4983,1
    - Dst: roaring::internal::bitset_container_is_subset_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4984,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4984,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4985,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4987,1
    - Dst: roaring::internal::run_container_is_subset_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4988,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4988,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4989,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4991,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4994,1
    - Dst: roaring::internal::array_container_is_subset_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4995,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4995,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4996,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4998,1
    - Dst: roaring::internal::array_container_is_subset_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4999,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:4999,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5000,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5002,1
    - Dst: roaring::internal::run_container_is_subset_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5003,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5003,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5004,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5006,1
    - Dst: roaring::internal::array_container_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5007,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5007,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5008,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5010,1
    - Dst: roaring::internal::run_container_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5011,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5011,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5012,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5015,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - c1
    - type1
    - c2
    - type2
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 5019
      start: 4972
    functionDepth: 0
    functionLinenumber: 4972
    functionLinenumberEnd: 5019
    functionName: roaring::internal::container_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_is_subset_run
    - roaring::internal::array_container_is_subset
    - roaring::internal::run_container_is_subset_array
    - roaring::internal::run_container_is_subset_bitset
    - roaring::internal::run_container_is_subset
    - roaring::internal::bitset_container_is_subset
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_is_subset_bitset
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - roaring::internal::array_container_is_subset_run
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_is_subset(\n    const container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5033,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5034,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5036,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5037,1
    - Dst: roaring::internal::bitset_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5038,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5039,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5040,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5045,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5046,1
    - Dst: roaring::internal::array_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5047,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5047,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5048,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5049,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5053,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5054,1
    - Dst: roaring::internal::run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5055,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5055,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5056,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5057,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5058,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5059,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5061,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5062,1
    - Dst: roaring::internal::array_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5063,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5063,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5064,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5065,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5069,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5070,1
    - Dst: roaring::internal::array_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5072,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5072,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5073,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5074,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5077,1
    - Dst: roaring::internal::run_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5078,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5079,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5080,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5085,1
    - Dst: roaring::internal::run_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5086,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5087,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5088,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5093,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5094,1
    - Dst: roaring::internal::array_run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5096,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5096,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5097,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5098,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5101,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5102,1
    - Dst: roaring::internal::array_run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5104,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5104,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5105,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5106,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5110,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5114
      start: 5028
    functionDepth: 0
    functionLinenumber: 5028
    functionLinenumberEnd: 5114
    functionName: roaring::internal::container_and
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_create
    - roaring::internal::convert_run_to_efficient_container_and_free
    - const_CAST_run
    - const_CAST_bitset
    - roaring::internal::array_run_container_intersection
    - roaring::internal::array_bitset_container_intersection
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::run_container_intersection
    - assert
    - roaring::internal::run_bitset_container_intersection
    - roaring::internal::bitset_bitset_container_intersection
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - __builtin_unreachable
    - roaring::internal::array_container_intersection
    - roaring::internal::array_container_create
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_and(\n    const container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5123,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5124,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5125,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5126,1
    - Dst: bitset_container_and_justcard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5127,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5128,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5128,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5130,1
    - Dst: roaring::internal::array_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5131,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5132,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5132,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5134,1
    - Dst: roaring::internal::run_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5135,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5136,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5136,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5138,1
    - Dst: roaring::internal::array_bitset_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5139,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5140,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5140,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5142,1
    - Dst: roaring::internal::array_bitset_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5143,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5144,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5144,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5146,1
    - Dst: roaring::internal::run_bitset_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5147,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5148,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5148,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5150,1
    - Dst: roaring::internal::run_bitset_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5151,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5152,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5152,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5154,1
    - Dst: roaring::internal::array_run_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5155,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5156,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5156,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5158,1
    - Dst: roaring::internal::array_run_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5159,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5160,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5160,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5163,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - c1
    - type1
    - c2
    - type2
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 5167
      start: 5119
    functionDepth: 0
    functionLinenumber: 5119
    functionLinenumberEnd: 5167
    functionName: roaring::internal::container_and_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_run_container_intersection_cardinality
    - roaring::internal::array_container_intersection_cardinality
    - const_CAST_array
    - roaring::internal::run_bitset_container_intersection_cardinality
    - roaring::internal::array_bitset_container_intersection_cardinality
    - roaring::internal::run_container_intersection_cardinality
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - bitset_container_and_justcard
    - PAIR_CONTAINER_TYPES
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: int
    signature: "int container_and_cardinality(\n    const container_t *c1, uint8_t
      type1,\n    const container_t *c2, uint8_t type2\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5176,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5177,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5178,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5179,1
    - Dst: roaring::internal::bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5180,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5180,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5181,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5183,1
    - Dst: roaring::internal::array_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5184,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5184,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5185,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5187,1
    - Dst: roaring::internal::run_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5188,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5188,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5189,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5191,1
    - Dst: roaring::internal::array_bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5192,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5192,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5193,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5195,1
    - Dst: roaring::internal::array_bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5196,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5196,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5197,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5199,1
    - Dst: roaring::internal::run_bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5200,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5200,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5201,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5203,1
    - Dst: roaring::internal::run_bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5204,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5204,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5205,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5207,1
    - Dst: roaring::internal::array_run_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5208,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5208,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5209,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5211,1
    - Dst: roaring::internal::array_run_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5212,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5212,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5213,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5216,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - c1
    - type1
    - c2
    - type2
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 5220
      start: 5172
    functionDepth: 0
    functionLinenumber: 5172
    functionLinenumberEnd: 5220
    functionName: roaring::internal::container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_run_container_intersect
    - __builtin_unreachable
    - roaring::internal::array_container_intersect
    - roaring::internal::array_bitset_container_intersect
    - assert
    - roaring::internal::run_bitset_container_intersect
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - roaring::internal::run_container_intersect
    - roaring::internal::bitset_container_intersect
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_intersect(\n    const container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5236,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5237,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5239,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5240,1
    - Dst: roaring::internal::bitset_bitset_container_intersection_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5242,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5243,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5243,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5248,1
    - Dst: roaring::internal::array_container_intersection_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5249,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5249,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5250,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5254,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5255,1
    - Dst: roaring::internal::run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5256,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5256,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5257,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5258,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5261,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5262,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5264,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5266,1
    - Dst: roaring::internal::array_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5267,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5267,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5268,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5269,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5273,1
    - Dst: roaring::internal::array_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5275,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5276,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5276,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5277,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5280,1
    - Dst: roaring::internal::run_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5282,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5283,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5284,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5289,1
    - Dst: roaring::internal::run_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5290,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5291,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5292,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5297,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5298,1
    - Dst: roaring::internal::array_run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5300,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5300,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5301,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5302,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5305,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5306,1
    - Dst: roaring::internal::array_run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5308,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5308,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5309,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5310,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5314,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5318
      start: 5231
    functionDepth: 0
    functionLinenumber: 5231
    functionLinenumberEnd: 5318
    functionName: roaring::internal::container_iand
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_bitset_container_intersection_inplace
    - roaring::internal::run_container_create
    - roaring::internal::array_container_intersection_inplace
    - roaring::internal::convert_run_to_efficient_container_and_free
    - const_CAST_run
    - const_CAST_bitset
    - CAST_bitset
    - roaring::internal::array_run_container_intersection
    - roaring::internal::array_bitset_container_intersection
    - roaring::internal::get_writable_copy_if_shared
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::run_container_intersection
    - assert
    - roaring::internal::run_bitset_container_intersection
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - __builtin_unreachable
    - roaring::internal::array_container_create
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_iand(\n    container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5330,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5331,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5333,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5334,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5335,1
    - Dst: bitset_container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5336,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5336,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5337,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5338,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5342,1
    - Dst: roaring::internal::array_array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5343,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5344,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5345,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5350,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5351,1
    - Dst: roaring::internal::run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5352,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5352,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5353,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5354,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5357,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5358,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5361,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5362,1
    - Dst: roaring::internal::array_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5363,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5363,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5364,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5365,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5369,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5370,1
    - Dst: roaring::internal::array_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5371,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5371,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5372,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5373,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5377,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5378,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5378,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5379,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5381,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5381,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5382,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5385,1
    - Dst: roaring::internal::run_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5386,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5386,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5387,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5388,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5392,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5393,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5393,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5394,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5396,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5396,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5397,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5400,1
    - Dst: roaring::internal::run_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5401,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5401,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5402,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5403,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5407,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5408,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5409,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5409,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5410,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5411,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5412,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5413,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5416,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5417,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5418,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5418,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5419,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5420,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5421,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5422,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5426,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 65
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5430
      start: 5325
    functionDepth: 0
    functionLinenumber: 5325
    functionLinenumberEnd: 5430
    functionName: roaring::internal::container_or
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_bitset_container_union
    - roaring::internal::run_container_create
    - roaring::internal::run_container_is_full
    - roaring::internal::run_container_union
    - roaring::internal::convert_run_to_efficient_container_and_free
    - const_CAST_run
    - const_CAST_bitset
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_copy
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::array_array_container_union
    - roaring::internal::array_bitset_container_union
    - roaring::internal::array_run_container_union
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - bitset_container_or
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_or(\n    const container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5445,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5446,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5448,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5449,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5450,1
    - Dst: bitset_container_or_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5451,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5452,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5452,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5453,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5457,1
    - Dst: roaring::internal::array_array_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5458,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5459,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5460,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5465,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5466,1
    - Dst: roaring::internal::run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5467,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5467,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5468,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5469,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5472,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5473,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5476,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5477,1
    - Dst: roaring::internal::array_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5478,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5479,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5479,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5480,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5484,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5485,1
    - Dst: roaring::internal::array_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5486,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5487,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5487,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5488,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5492,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5493,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5493,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5494,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5496,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5496,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5496,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5499,1
    - Dst: roaring::internal::run_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5500,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5501,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5501,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5502,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5506,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5507,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5507,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5508,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5510,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5510,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5510,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5513,1
    - Dst: roaring::internal::run_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5514,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5515,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5515,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5516,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5520,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5521,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5522,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5522,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5523,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5524,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5530,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5531,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5532,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5533,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5533,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5534,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5541,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 65
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5545
      start: 5440
    functionDepth: 0
    functionLinenumber: 5440
    functionLinenumberEnd: 5545
    functionName: roaring::internal::container_lazy_or
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_create
    - roaring::internal::array_array_container_lazy_union
    - roaring::internal::run_container_is_full
    - roaring::internal::run_container_union
    - roaring::internal::convert_run_to_efficient_container_and_free
    - const_CAST_run
    - const_CAST_bitset
    - bitset_container_or_nocard
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_copy
    - roaring::internal::run_bitset_container_lazy_union
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::array_bitset_container_lazy_union
    - roaring::internal::array_run_container_union
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_lazy_or(\n    const container_t *c1, uint8_t
      type1,\n    const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5561,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5562,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5564,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5565,1
    - Dst: bitset_container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5566,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5566,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5567,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5568,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5570,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5571,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5579,1
    - Dst: roaring::internal::array_array_container_inplace_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5580,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5581,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5581,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5590,1
    - Dst: roaring::internal::run_container_union_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5591,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5591,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5591,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5592,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5592,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5595,1
    - Dst: roaring::internal::array_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5596,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5596,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5597,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5598,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5602,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5604,1
    - Dst: roaring::internal::array_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5606,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5606,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5607,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5608,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5611,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5612,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5612,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5613,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5615,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5615,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5615,1
    - Dst: roaring::internal::run_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5618,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5618,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5619,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5620,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5624,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5625,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5625,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5629,1
    - Dst: roaring::internal::run_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5630,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5630,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5631,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5632,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5636,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5637,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5638,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5638,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5639,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5640,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5641,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5642,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5645,1
    - Dst: roaring::internal::array_run_container_inplace_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5646,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5646,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5647,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5648,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5648,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5653,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5654,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 64
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5657
      start: 5556
    functionDepth: 0
    functionLinenumber: 5556
    functionLinenumberEnd: 5657
    functionName: roaring::internal::container_ior
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_union_inplace
    - roaring::internal::run_bitset_container_union
    - roaring::internal::run_container_create
    - roaring::internal::run_container_is_full
    - roaring::internal::convert_run_to_efficient_container_and_free
    - const_CAST_run
    - const_CAST_bitset
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_copy
    - roaring::internal::get_writable_copy_if_shared
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - roaring::internal::run_container_create_range
    - CAST_run
    - roaring::internal::array_bitset_container_union
    - roaring::internal::array_run_container_union
    - roaring::internal::array_array_container_inplace_union
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - roaring::internal::array_run_container_inplace_union
    - __builtin_unreachable
    - bitset_container_or
    - roaring::internal::convert_run_to_efficient_container
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_ior(\n    container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5676,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5678,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5680,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5681,1
    - Dst: bitset_container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5684,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5684,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5685,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5686,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5688,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5689,1
    - Dst: bitset_container_or_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5694,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5694,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5695,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5696,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5702,1
    - Dst: roaring::internal::array_array_container_lazy_inplace_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5703,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5704,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5705,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5714,1
    - Dst: roaring::internal::run_container_union_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5715,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5715,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5716,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5718,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5718,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5721,1
    - Dst: roaring::internal::array_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5722,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5723,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5723,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5724,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5728,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5730,1
    - Dst: roaring::internal::array_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5732,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5733,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5733,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5734,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5737,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5738,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5738,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5739,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5741,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5741,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5742,1
    - Dst: roaring::internal::run_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5745,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5746,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5746,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5747,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5751,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5752,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5752,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5756,1
    - Dst: roaring::internal::run_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5757,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5758,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5758,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5759,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5763,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5764,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5765,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5765,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5766,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5767,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5774,1
    - Dst: roaring::internal::array_run_container_inplace_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5775,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5775,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5776,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5784,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5785,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 66
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5788
      start: 5671
    functionDepth: 0
    functionLinenumber: 5671
    functionLinenumberEnd: 5788
    functionName: roaring::internal::container_lazy_ior
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_union_inplace
    - roaring::internal::run_container_create
    - roaring::internal::run_container_is_full
    - const_CAST_run
    - const_CAST_bitset
    - bitset_container_or_nocard
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_copy
    - roaring::internal::run_bitset_container_lazy_union
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - roaring::internal::run_container_create_range
    - CAST_run
    - roaring::internal::array_bitset_container_lazy_union
    - roaring::internal::array_run_container_union
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - roaring::internal::array_run_container_inplace_union
    - __builtin_unreachable
    - bitset_container_or
    - roaring::internal::array_array_container_lazy_inplace_union
    - roaring::internal::convert_run_to_efficient_container
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_lazy_ior(\n    container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5800,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5801,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5803,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5804,1
    - Dst: roaring::internal::bitset_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5805,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5806,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5807,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5812,1
    - Dst: roaring::internal::array_array_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5813,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5814,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5815,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5820,1
    - Dst: roaring::internal::run_run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5822,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5822,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5823,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5826,1
    - Dst: roaring::internal::array_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5827,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5828,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5829,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5834,1
    - Dst: roaring::internal::array_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5835,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5836,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5837,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5842,1
    - Dst: roaring::internal::run_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5843,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5844,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5845,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5850,1
    - Dst: roaring::internal::run_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5851,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5852,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5853,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5858,1
    - Dst: roaring::internal::array_run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5860,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5860,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5861,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5864,1
    - Dst: roaring::internal::array_run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5866,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5866,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5867,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5871,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5875
      start: 5795
    functionDepth: 0
    functionLinenumber: 5795
    functionLinenumberEnd: 5875
    functionName: roaring::internal::container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_bitset_container_xor
    - roaring::internal::array_array_container_xor
    - roaring::internal::array_bitset_container_xor
    - roaring::internal::array_run_container_xor
    - roaring::internal::run_run_container_xor
    - roaring::internal::bitset_bitset_container_xor
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t * container_xor(\n    const container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5891,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5892,1
    - Dst: roaring::internal::container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5892,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5893,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5894,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5895,1
    - Dst: roaring::internal::bitset_container_offset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5899,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5899,1
    - Dst: roaring::internal::array_container_offset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5902,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5902,1
    - Dst: roaring::internal::run_container_offset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5905,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5905,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5908,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5909,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - c
    - type
    - lo
    - hi
    - offset
    argTypes:
    - container_t*
    - uint8_t
    - container_t**
    - container_t**
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5912
      start: 5888
    functionDepth: 0
    functionLinenumber: 5888
    functionLinenumberEnd: 5912
    functionName: roaring::internal::container_add_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_offset
    - roaring::internal::container_nonzero_cardinality
    - assert
    - const_CAST_array
    - roaring::internal::bitset_container_offset
    - roaring::internal::run_container_offset
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: void
    signature: "void container_add_offset(const container_t *c, uint8_t type,\n                                        container_t
      **lo, container_t **hi,\n                                        uint16_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5927,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5928,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5930,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5931,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5932,1
    - Dst: bitset_container_xor_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5933,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5934,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5934,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5935,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5939,1
    - Dst: roaring::internal::array_array_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5940,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5941,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5942,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5947,1
    - Dst: roaring::internal::run_run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5950,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5950,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5951,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5954,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5955,1
    - Dst: roaring::internal::array_bitset_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5957,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5957,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5958,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5959,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5962,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5963,1
    - Dst: roaring::internal::array_bitset_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5965,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5965,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5966,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5967,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5970,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5971,1
    - Dst: roaring::internal::run_bitset_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5972,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5972,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5973,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5974,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5978,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5979,1
    - Dst: roaring::internal::run_bitset_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5980,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5980,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5981,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5982,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5986,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5987,1
    - Dst: roaring::internal::array_run_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5988,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5988,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5989,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5990,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5996,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5997,1
    - Dst: roaring::internal::array_run_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5998,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5998,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:5999,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6000,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6007,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6011
      start: 5922
    functionDepth: 0
    functionLinenumber: 5922
    functionLinenumberEnd: 6011
    functionName: roaring::internal::container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_create
    - CAST_bitset
    - roaring::internal::run_run_container_xor
    - CAST_run
    - roaring::internal::array_bitset_container_lazy_xor
    - roaring::internal::bitset_container_create
    - bitset_container_xor_nocard
    - roaring::internal::run_bitset_container_lazy_xor
    - roaring::internal::array_array_container_lazy_xor
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - assert
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - __builtin_unreachable
    - roaring::internal::array_run_container_lazy_xor
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_lazy_xor(\n    const container_t *c1, uint8_t
      type1,\n    const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6027,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6028,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6030,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6031,1
    - Dst: roaring::internal::bitset_bitset_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6032,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6033,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6033,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6038,1
    - Dst: roaring::internal::array_array_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6039,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6040,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6040,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6045,1
    - Dst: roaring::internal::run_run_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6046,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6047,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6047,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6050,1
    - Dst: roaring::internal::bitset_array_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6051,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6052,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6052,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6057,1
    - Dst: roaring::internal::array_bitset_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6058,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6059,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6059,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6064,1
    - Dst: roaring::internal::bitset_run_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6066,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6067,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6067,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6073,1
    - Dst: roaring::internal::run_bitset_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6074,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6075,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6075,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6080,1
    - Dst: roaring::internal::array_run_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6081,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6082,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6082,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6085,1
    - Dst: roaring::internal::run_array_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6086,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6087,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6087,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6091,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6095
      start: 6022
    functionDepth: 0
    functionLinenumber: 6022
    functionLinenumberEnd: 6095
    functionName: roaring::internal::container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_run_container_ixor
    - const_CAST_run
    - const_CAST_bitset
    - roaring::internal::bitset_bitset_container_ixor
    - CAST_bitset
    - roaring::internal::run_array_container_ixor
    - roaring::internal::get_writable_copy_if_shared
    - CONTAINER_PAIR
    - roaring::internal::bitset_run_container_ixor
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::array_array_container_ixor
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - roaring::internal::run_bitset_container_ixor
    - __builtin_unreachable
    - roaring::internal::run_run_container_ixor
    - roaring::internal::array_bitset_container_ixor
    - roaring::internal::bitset_array_container_ixor
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_ixor(\n    container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6114,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6116,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6117,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6118,1
    - Dst: bitset_container_xor_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6119,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6119,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6120,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6121,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6131,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6133,1
    - Dst: roaring::internal::container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6138
      start: 6109
    functionDepth: 0
    functionLinenumber: 6109
    functionLinenumberEnd: 6138
    functionName: roaring::internal::container_lazy_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::container_ixor
    - CAST_bitset
    - bitset_container_xor_nocard
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - PAIR_CONTAINER_TYPES
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_lazy_ixor(\n    container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6150,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6151,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6153,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6154,1
    - Dst: roaring::internal::bitset_bitset_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6155,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6156,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6157,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6162,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6163,1
    - Dst: roaring::internal::array_array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6164,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6164,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6165,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6166,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6170,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6171,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6171,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6172,1
    - Dst: roaring::internal::run_run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6177,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6177,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6178,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6181,1
    - Dst: roaring::internal::bitset_array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6182,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6183,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6184,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6189,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6190,1
    - Dst: roaring::internal::array_bitset_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6191,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6191,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6192,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6193,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6197,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6198,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6198,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6199,1
    - Dst: roaring::internal::bitset_run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6203,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6204,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6205,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6210,1
    - Dst: roaring::internal::run_bitset_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6211,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6212,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6213,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6218,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6219,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6219,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6220,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6224,1
    - Dst: roaring::internal::array_run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6225,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6225,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6226,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6227,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6231,1
    - Dst: roaring::internal::run_array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6232,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6233,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6233,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6238,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6242
      start: 6145
    functionDepth: 0
    functionLinenumber: 6145
    functionLinenumberEnd: 6242
    functionName: roaring::internal::container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_is_full
    - roaring::internal::array_run_container_andnot
    - roaring::internal::bitset_bitset_container_andnot
    - const_CAST_run
    - const_CAST_bitset
    - roaring::internal::bitset_array_container_andnot
    - roaring::internal::run_bitset_container_andnot
    - roaring::internal::bitset_run_container_andnot
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - roaring::internal::array_bitset_container_andnot
    - roaring::internal::array_array_container_andnot
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - __builtin_unreachable
    - roaring::internal::run_array_container_andnot
    - roaring::internal::run_run_container_andnot
    - roaring::internal::array_container_create
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_andnot(\n    const container_t *c1, uint8_t
      type1,\n    const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6259,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6260,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6262,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6263,1
    - Dst: roaring::internal::bitset_bitset_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6264,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6265,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6266,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6271,1
    - Dst: roaring::internal::array_array_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6272,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6272,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6273,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6277,1
    - Dst: roaring::internal::run_run_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6278,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6279,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6279,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6282,1
    - Dst: roaring::internal::bitset_array_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6283,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6284,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6285,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6290,1
    - Dst: roaring::internal::array_bitset_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6292,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6292,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6293,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6296,1
    - Dst: roaring::internal::bitset_run_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6297,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6298,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6299,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6304,1
    - Dst: roaring::internal::run_bitset_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6305,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6306,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6307,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6312,1
    - Dst: roaring::internal::array_run_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6314,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6314,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6315,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6318,1
    - Dst: roaring::internal::run_array_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6319,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6320,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6320,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6324,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6328
      start: 6254
    functionDepth: 0
    functionLinenumber: 6254
    functionLinenumberEnd: 6328
    functionName: roaring::internal::container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_bitset_container_iandnot
    - roaring::internal::array_bitset_container_iandnot
    - roaring::internal::bitset_array_container_iandnot
    - const_CAST_run
    - const_CAST_bitset
    - roaring::internal::run_run_container_iandnot
    - CAST_bitset
    - roaring::internal::bitset_run_container_iandnot
    - roaring::internal::get_writable_copy_if_shared
    - CONTAINER_PAIR
    - roaring::internal::run_bitset_container_iandnot
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::array_run_container_iandnot
    - assert
    - roaring::internal::array_array_container_iandnot
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - __builtin_unreachable
    - roaring::internal::run_array_container_iandnot
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_iandnot(\n    container_t *c1, uint8_t type1,\n
      \   const container_t *c2, uint8_t type2,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6340,1
    - Dst: roaring::internal::bitset_container_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6343,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6343,1
    - Dst: roaring::internal::array_container_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6346,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6346,1
    - Dst: roaring::internal::run_container_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6349,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6349,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6352,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6353,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6355,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - c
    - type
    - base
    - iterator
    - ptr
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 6358
      start: 6335
    functionDepth: 0
    functionLinenumber: 6335
    functionLinenumberEnd: 6358
    functionName: roaring::internal::container_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_iterate
    - __builtin_unreachable
    - roaring::internal::bitset_container_iterate
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - roaring::internal::array_container_iterate
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_iterate(\n    const container_t *c, uint8_t type,\n
      \   uint32_t base,\n    roaring_iterator iterator, void *ptr\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6366,1
    - Dst: roaring::internal::bitset_container_iterate64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6369,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6369,1
    - Dst: roaring::internal::array_container_iterate64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6372,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6372,1
    - Dst: roaring::internal::run_container_iterate64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6375,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6375,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6378,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6379,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6381,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 6
    argNames:
    - c
    - type
    - base
    - iterator
    - high_bits
    - ptr
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 6384
      start: 6360
    functionDepth: 0
    functionLinenumber: 6360
    functionLinenumberEnd: 6384
    functionName: roaring::internal::container_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - __builtin_unreachable
    - roaring::internal::run_container_iterate64
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_iterate64
    - const_CAST_array
    - roaring::internal::bitset_container_iterate64
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_iterate64(\n    const container_t *c, uint8_t type,\n
      \   uint32_t base,\n    roaring_iterator64 iterator,\n    uint64_t high_bits,
      void *ptr\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6390,1
    - Dst: roaring::internal::bitset_container_negation
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6394,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6395,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6400,1
    - Dst: roaring::internal::array_container_negation
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6402,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6402,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6403,1
    - Dst: roaring::internal::run_container_negation
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6407,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6407,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6411,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6412,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6414,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - c
    - type
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6417
      start: 6386
    functionDepth: 0
    functionLinenumber: 6386
    functionLinenumberEnd: 6417
    functionName: roaring::internal::container_not
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_negation
    - roaring::internal::run_container_negation
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - roaring::internal::bitset_container_negation
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_not(\n    const container_t *c, uint8_t type,\n
      \   uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6424,1
    - Dst: roaring::internal::bitset_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6429,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6430,1
    - Dst: roaring::internal::array_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6436,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6437,1
    - Dst: roaring::internal::run_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6442,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6443,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6447,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6448,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6450,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 5
    argNames:
    - c
    - type
    - range_start
    - range_end
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6453
      start: 6419
    functionDepth: 0
    functionLinenumber: 6419
    functionLinenumberEnd: 6453
    functionName: roaring::internal::container_not_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_negation_range
    - assert
    - roaring::internal::bitset_container_negation_range
    - roaring::internal::array_container_negation_range
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_not_range(\n    const container_t *c, uint8_t
      type,\n    uint32_t range_start, uint32_t range_end,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6459,1
    - Dst: roaring::internal::bitset_container_negation_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6463,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6464,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6470,1
    - Dst: roaring::internal::array_container_negation
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6472,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6472,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6473,1
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6474,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6474,1
    - Dst: roaring::internal::run_container_negation_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6478,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6478,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6482,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6483,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6485,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - c
    - type
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6488
      start: 6455
    functionDepth: 0
    functionLinenumber: 6455
    functionLinenumberEnd: 6488
    functionName: roaring::internal::container_inot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_negation_inplace
    - roaring::internal::array_container_negation
    - CAST_bitset
    - CAST_run
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_negation_inplace
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - CAST_array
    - __builtin_unreachable
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_inot(\n    container_t *c, uint8_t type,\n
      \   uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6495,1
    - Dst: roaring::internal::bitset_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6500,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6501,1
    - Dst: roaring::internal::array_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6507,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6508,1
    - Dst: roaring::internal::run_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6513,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6514,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6518,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6519,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6521,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 5
    argNames:
    - c
    - type
    - range_start
    - range_end
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6524
      start: 6490
    functionDepth: 0
    functionLinenumber: 6490
    functionLinenumberEnd: 6524
    functionName: roaring::internal::container_inot_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_negation_range_inplace
    - CAST_bitset
    - roaring::internal::bitset_container_negation_range_inplace
    - roaring::internal::run_container_negation_range_inplace
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - CAST_array
    - __builtin_unreachable
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_inot_range(\n    container_t *c, uint8_t type,\n
      \   uint32_t range_start, uint32_t range_end,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6539,1
    - Dst: roaring::internal::bitset_container_select
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6542,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6542,1
    - Dst: roaring::internal::array_container_select
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6545,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6545,1
    - Dst: roaring::internal::run_container_select
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6548,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6548,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6551,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6552,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6554,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - c
    - type
    - start_rank
    - rank
    - element
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 6557
      start: 6534
    functionDepth: 0
    functionLinenumber: 6534
    functionLinenumberEnd: 6557
    functionName: roaring::internal::container_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_run
    - const_CAST_array
    - roaring::internal::run_container_select
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_select
    - __builtin_unreachable
    - roaring::internal::bitset_container_select
    linkageType: ''
    returnType: bool
    signature: "bool container_select(\n    const container_t *c, uint8_t type,\n
      \   uint32_t *start_rank, uint32_t rank,\n    uint32_t *element\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6562,1
    - Dst: roaring::internal::bitset_container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6565,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6565,1
    - Dst: roaring::internal::array_container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6567,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6567,1
    - Dst: roaring::internal::run_container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6569,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6569,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6571,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6572,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6574,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 6577
      start: 6559
    functionDepth: 0
    functionLinenumber: 6559
    functionLinenumberEnd: 6577
    functionName: roaring::internal::container_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_maximum
    - roaring::internal::bitset_container_maximum
    - roaring::internal::run_container_maximum
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t container_maximum(\n    const container_t *c, uint8_t type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6582,1
    - Dst: roaring::internal::bitset_container_minimum
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6585,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6585,1
    - Dst: roaring::internal::array_container_minimum
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6587,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6587,1
    - Dst: roaring::internal::run_container_minimum
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6589,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6589,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6591,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6592,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6594,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 6597
      start: 6579
    functionDepth: 0
    functionLinenumber: 6579
    functionLinenumberEnd: 6597
    functionName: roaring::internal::container_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_minimum
    - roaring::internal::array_container_minimum
    - roaring::internal::bitset_container_minimum
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t container_minimum(\n    const container_t *c, uint8_t type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6604,1
    - Dst: roaring::internal::bitset_container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6607,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6607,1
    - Dst: roaring::internal::array_container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6609,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6609,1
    - Dst: roaring::internal::run_container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6611,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6611,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6613,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6614,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6616,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - c
    - type
    - x
    argTypes:
    - container_t*
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 6619
      start: 6600
    functionDepth: 0
    functionLinenumber: 6600
    functionLinenumberEnd: 6619
    functionName: roaring::internal::container_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_rank
    - roaring::internal::run_container_rank
    - assert
    - roaring::internal::array_container_rank
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: int
    signature: "int container_rank(\n    const container_t *c, uint8_t type,\n    uint16_t
      x\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6637,1
    - Dst: roaring::internal::bitset_lenrange_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6642,1
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6645,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6647,1
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6647,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6650,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6656,1
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6662,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6664,1
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6664,1
    - Dst: roaring::internal::array_container_add_range_nvals
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6667,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6671,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6672,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6678,1
    - Dst: roaring::internal::run_container_add_range_nruns
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6687,1
    - Dst: roaring::internal::container_from_run_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6691,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6695,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 5
    argNames:
    - c
    - type
    - min
    - max
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6697
      start: 6629
    functionDepth: 0
    functionLinenumber: 6629
    functionLinenumberEnd: 6697
    functionName: roaring::internal::container_add_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_lenrange_cardinality
    - roaring::internal::bitset_container_from_array
    - CAST_bitset
    - roaring::internal::array_container_add_range_nvals
    - roaring::internal::bitset_set_lenrange
    - roaring::internal::run_container_add_range_nruns
    - INT32_C
    - roaring::internal::container_from_run_range
    - CAST_array
    - roaring::internal::run_container_create_range
    - __builtin_unreachable
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_add_range(\n    container_t *c, uint8_t type,\n
      \   uint32_t min, uint32_t max,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6716,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6725,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6727,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6730,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6736,1
    - Dst: roaring::internal::array_container_remove_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6746,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6752,1
    - Dst: roaring::internal::run_container_minimum
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6757,1
    - Dst: roaring::internal::run_container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6757,1
    - Dst: roaring::internal::run_container_remove_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6761,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6762,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6765,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 5
    argNames:
    - c
    - type
    - min
    - max
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6767
      start: 6709
    functionDepth: 0
    functionLinenumber: 6709
    functionLinenumberEnd: 6767
    functionName: roaring::internal::container_remove_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - CAST_bitset
    - roaring::internal::run_container_minimum
    - roaring::internal::array_container_remove_range
    - roaring::internal::run_container_maximum
    - roaring::internal::run_container_remove_range
    - roaring::internal::array_container_from_bitset
    - roaring::internal::convert_run_to_efficient_container
    - CAST_array
    - roaring::internal::bitset_reset_range
    - __builtin_unreachable
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_remove_range(\n    container_t *c, uint8_t
      type,\n    uint32_t min, uint32_t max,\n    uint8_t *result_type\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::binarySearch
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ra
    - x
    argTypes:
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 6854
      start: 6851
    functionDepth: 0
    functionLinenumber: 6851
    functionLinenumberEnd: 6854
    functionName: roaring::internal::ra_get_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::binarySearch
    linkageType: ''
    returnType: int32_t
    signature: int32_t ra_get_index(const roaring_array_t *ra, uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ra
    - i
    - typecode
    argTypes:
    - roaring_array_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6864
      start: 6859
    functionDepth: 0
    functionLinenumber: 6859
    functionLinenumberEnd: 6864
    functionName: roaring::internal::ra_get_container_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: container_t
    signature: "container_t *ra_get_container_at_index(\n    const roaring_array_t
      *ra, uint16_t i, uint8_t *typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ra
    - i
    argTypes:
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 6871
      start: 6869
    functionDepth: 0
    functionLinenumber: 6869
    functionLinenumberEnd: 6871
    functionName: roaring::internal::ra_get_key_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ra_get_key_at_index(const roaring_array_t *ra, uint16_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ra
    - i
    - c
    - typecode
    argTypes:
    - roaring_array_t*
    - int32_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 6942
      start: 6935
    functionDepth: 0
    functionLinenumber: 6935
    functionLinenumberEnd: 6942
    functionName: roaring::internal::ra_set_container_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void ra_set_container_at_index(\n    const roaring_array_t *ra, int32_t
      i,\n    container_t *c, uint8_t typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 6951
      start: 6951
    functionDepth: 0
    functionLinenumber: 6951
    functionLinenumberEnd: 6951
    functionName: roaring::internal::ra_get_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t ra_get_size(const roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ra
    - x
    - pos
    argTypes:
    - roaring_array_t*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 6956
      start: 6953
    functionDepth: 0
    functionLinenumber: 6953
    functionLinenumberEnd: 6956
    functionName: roaring::internal::ra_advance_until
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::advanceUntil
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ra_advance_until(const roaring_array_t *ra, uint16_t x,\n
      \                                      int32_t pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:6966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ra
    - i
    - key
    - c
    - typecode
    argTypes:
    - roaring_array_t*
    - int32_t
    - uint16_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 6971
      start: 6962
    functionDepth: 0
    functionLinenumber: 6962
    functionLinenumberEnd: 6971
    functionName: roaring::internal::ra_replace_key_and_container_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void ra_replace_key_and_container_at_index(\n    roaring_array_t *ra,
      int32_t i, uint16_t key,\n    container_t *c, uint8_t typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7030,1
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ra
    - i
    argTypes:
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 7033
      start: 7028
    functionDepth: 0
    functionLinenumber: 7028
    functionLinenumberEnd: 7033
    functionName: roaring::internal::ra_unshare_container_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - assert
    - roaring::internal::get_writable_copy_if_shared
    linkageType: ''
    returnType: void
    signature: "void ra_unshare_container_at_index(roaring_array_t *ra,\n                                                 uint16_t
      i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7457,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7458,1
    - Dst: _mm_cmpestrm
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7460,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7464,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7465,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7466,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7467,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7473,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7478,1
    - Dst: _mm_cmpistrm
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7483,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7488,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7489,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7490,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7491,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7497,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7502,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 5
    argNames:
    - A
    - s_a
    - B
    - s_b
    - C
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 7522
      start: 7446
    functionDepth: 0
    functionLinenumber: 7446
    functionLinenumberEnd: 7522
    functionName: roaring::internal::intersect_vector16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm_loadu_si128
    - _mm_storeu_si128
    - _mm_shuffle_epi8
    - _mm_cmpestrm
    - _mm_popcnt_u32
    - _mm_lddqu_si128
    - _mm_cmpistrm
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 intersect_vector16(const uint16_t *__restrict__
      A, size_t s_a,\n                           const uint16_t *__restrict__ B, size_t
      s_b,\n                           uint16_t *C)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7537,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7538,1
    - Dst: _mm_cmpestrm
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7540,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7544,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7550,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7555,1
    - Dst: _mm_cmpistrm
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7560,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7564,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7570,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7575,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 4
    argNames:
    - A
    - s_a
    - B
    - s_b
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 7594
      start: 7523
    functionDepth: 0
    functionLinenumber: 7523
    functionLinenumberEnd: 7594
    functionName: roaring::internal::intersect_vector16_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm_popcnt_u32
    - _mm_lddqu_si128
    - _mm_cmpestrm
    - _mm_cmpistrm
    linkageType: ''
    returnType: CROARING_UNTARGET_REGION
    signature: "CROARING_UNTARGET_REGION intersect_vector16_cardinality(const uint16_t
      *__restrict__ A,\n                                       size_t s_a,\n                                       const
      uint16_t *__restrict__ B,\n                                       size_t s_b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7608,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7638,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7639,1
    - Dst: _mm_setzero_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7642,1
    - Dst: _mm_cmpistrm
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7651,1
    - Dst: _mm_or_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7654,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7665,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7667,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7668,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7669,1
    - Dst: _mm_setzero_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7674,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7675,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7681,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7690,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7691,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7692,1
    - Dst: _mm_cmpistrm
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7694,1
    - Dst: _mm_or_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7697,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7700,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7702,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7703,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7704,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7726,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7728,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 5
    argNames:
    - A
    - s_a
    - B
    - s_b
    - C
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 7738
      start: 7595
    functionDepth: 0
    functionLinenumber: 7595
    functionLinenumberEnd: 7738
    functionName: roaring::internal::difference_vector16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memset
    - _mm_loadu_si128
    - memcpy
    - _mm_storeu_si128
    - _mm_or_si128
    - _mm_shuffle_epi8
    - _mm_setzero_si128
    - memmove
    - assert
    - _mm_popcnt_u32
    - _mm_lddqu_si128
    - _mm_cmpistrm
    linkageType: ''
    returnType: CROARING_UNTARGET_REGION
    signature: "CROARING_UNTARGET_REGION difference_vector16(const uint16_t *__restrict__
      A, size_t s_a,\n                            const uint16_t *__restrict__ B,
      size_t s_b,\n                            uint16_t *C)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 10
    argNames:
    - array
    - n
    - target1
    - target2
    - target3
    - target4
    - index1
    - index2
    - index3
    - index4
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - int32_t*
    - int32_t*
    - int32_t*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 7774
      start: 7752
    functionDepth: 0
    functionLinenumber: 7752
    functionLinenumberEnd: 7774
    functionName: roaring::internal::binarySearch4
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void binarySearch4(const uint16_t *array, int32_t n, uint16_t target1,\n
      \                  uint16_t target2, uint16_t target3, uint16_t target4,\n                   int32_t
      *index1, int32_t *index2, int32_t *index3,\n                   int32_t *index4)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - array
    - n
    - target1
    - target2
    - index1
    - index2
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    - uint16_t
    - int32_t*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 7798
      start: 7784
    functionDepth: 0
    functionLinenumber: 7784
    functionLinenumberEnd: 7798
    functionName: roaring::internal::binarySearch2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void binarySearch2(const uint16_t *array, int32_t n, uint16_t target1,\n
      \                  uint16_t target2, int32_t *index1, int32_t *index2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::binarySearch4
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7820,1
    - Dst: roaring::internal::binarySearch2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7840,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 5
    argNames:
    - small
    - size_s
    - large
    - size_l
    - buffer
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 7858
      start: 7806
    functionDepth: 0
    functionLinenumber: 7806
    functionLinenumberEnd: 7858
    functionName: roaring::internal::intersect_skewed_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::binarySearch4
    - roaring::internal::binarySearch2
    linkageType: ''
    returnType: int32_t
    signature: "int32_t intersect_skewed_uint16(const uint16_t *small, size_t size_s,\n
      \                                        const uint16_t *large, size_t size_l,\n
      \                                        uint16_t *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7877,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7889,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - small
    - size_s
    - large
    - size_l
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 7896
      start: 7863
    functionDepth: 0
    functionLinenumber: 7863
    functionLinenumberEnd: 7896
    functionName: roaring::internal::intersect_skewed_uint16_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::advanceUntil
    linkageType: ''
    returnType: int32_t
    signature: "int32_t intersect_skewed_uint16_cardinality(const uint16_t *small,\n
      \                                           size_t size_s,\n                                            const
      uint16_t *large,\n                                            size_t size_l)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:7910,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - small
    - size_s
    - large
    - size_l
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 7923
      start: 7898
    functionDepth: 0
    functionLinenumber: 7898
    functionLinenumberEnd: 7923
    functionName: roaring::internal::intersect_skewed_uint16_nonempty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::advanceUntil
    linkageType: ''
    returnType: bool
    signature: "bool intersect_skewed_uint16_nonempty(const uint16_t *small, size_t
      size_s,\n                                const uint16_t *large, size_t size_l)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - A
    - lenA
    - B
    - lenB
    - out
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 7951
      start: 7928
    functionDepth: 0
    functionLinenumber: 7928
    functionLinenumberEnd: 7951
    functionName: roaring::internal::intersect_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t intersect_uint16(const uint16_t *A, const size_t lenA,\n                         const
      uint16_t *B, const size_t lenB, uint16_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - A
    - lenA
    - B
    - lenB
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 7976
      start: 7953
    functionDepth: 0
    functionLinenumber: 7953
    functionLinenumberEnd: 7976
    functionName: roaring::internal::intersect_uint16_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t intersect_uint16_cardinality(const uint16_t *A, const size_t
      lenA,\n                                     const uint16_t *B, const size_t
      lenB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - A
    - lenA
    - B
    - lenB
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 8000
      start: 7979
    functionDepth: 0
    functionLinenumber: 7979
    functionLinenumberEnd: 8000
    functionName: roaring::internal::intersect_uint16_nonempty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool intersect_uint16_nonempty(const uint16_t *A, const size_t lenA,\n
      \                        const uint16_t *B, const size_t lenB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 5
    argNames:
    - A
    - lenA
    - B
    - lenB
    - out
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t*
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 8031
      start: 8007
    functionDepth: 0
    functionLinenumber: 8007
    functionLinenumberEnd: 8031
    functionName: roaring::internal::intersection_uint32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t intersection_uint32(const uint32_t *A, const size_t lenA,\n
      \                          const uint32_t *B, const size_t lenB,\n                           uint32_t
      *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 4
    argNames:
    - A
    - lenA
    - B
    - lenB
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 8056
      start: 8033
    functionDepth: 0
    functionLinenumber: 8033
    functionLinenumberEnd: 8056
    functionName: roaring::internal::intersection_uint32_card
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t intersection_uint32_card(const uint32_t *A, const size_t lenA,\n
      \                               const uint32_t *B, const size_t lenB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8066,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8070,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8099,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8103,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 5
    argNames:
    - set_1
    - size_1
    - set_2
    - size_2
    - buffer
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8108
      start: 8061
    functionDepth: 0
    functionLinenumber: 8061
    functionLinenumberEnd: 8108
    functionName: roaring::internal::union_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: size_t
    signature: "size_t union_uint16(const uint16_t *set_1, size_t size_1, const uint16_t
      *set_2,\n                    size_t size_2, uint16_t *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8116,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8136,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8145,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - a1
    - length1
    - a2
    - length2
    - a_out
    argTypes:
    - uint16_t*
    - int
    - uint16_t*
    - int
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8153
      start: 8110
    functionDepth: 0
    functionLinenumber: 8110
    functionLinenumberEnd: 8153
    functionName: roaring::internal::difference_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int difference_uint16(const uint16_t *a1, int length1, const uint16_t
      *a2,\n                      int length2, uint16_t *a_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8176,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - array_1
    - card_1
    - array_2
    - card_2
    - out
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t*
    - int32_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8184
      start: 8155
    functionDepth: 0
    functionLinenumber: 8155
    functionLinenumberEnd: 8184
    functionName: roaring::internal::xor_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t xor_uint16(const uint16_t *array_1, int32_t card_1,\n                   const
      uint16_t *array_2, int32_t card_2, uint16_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8203,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8204,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8205,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8206,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8207,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8208,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8209,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8210,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8211,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8212,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8213,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8214,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8215,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8216,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8217,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8218,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8219,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8220,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8221,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8222,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8223,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8224,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8225,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 4
    argNames:
    - vInput1
    - vInput2
    - vecMin
    - vecMax
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    constantsTouched: []
    func_position:
      end: 8227
      start: 8192
    functionDepth: 0
    functionLinenumber: 8192
    functionLinenumberEnd: 8227
    functionName: roaring::internal::sse_merge
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm_alignr_epi8
    - _mm_min_epu16
    - _mm_max_epu16
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 sse_merge(const __m128i *vInput1,\n                             const
      __m128i *vInput2,              // input 1 & 2\n                             __m128i
      *vecMin, __m128i *vecMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8577,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8582,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8583,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - old
    - newval
    - output
    argTypes:
    - __m128i
    - __m128i
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8586
      start: 8573
    functionDepth: 0
    functionLinenumber: 8573
    functionLinenumberEnd: 8586
    functionName: roaring::internal::store_unique
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm_alignr_epi8
    - _mm_shuffle_epi8
    - _mm_lddqu_si128
    - _mm_storeu_si128
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: CROARING_TARGET_AVX2 store_unique(__m128i old, __m128i newval, uint16_t
      *output)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - out
    - len
    argTypes:
    - uint16_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 8599
      start: 8587
    functionDepth: 0
    functionLinenumber: 8587
    functionLinenumberEnd: 8599
    functionName: roaring::internal::unique
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CROARING_UNTARGET_REGION
    signature: CROARING_UNTARGET_REGION unique(uint16_t *out, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 8604
      start: 8602
    functionDepth: 0
    functionLinenumber: 8602
    functionLinenumberEnd: 8604
    functionName: roaring::internal::uint16_compare
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int uint16_compare(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8613,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8623,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8625,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8627,1
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8628,1
    - Dst: roaring::internal::store_unique
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8629,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8637,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8645,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8653,1
    - Dst: roaring::internal::store_unique
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8654,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8657,1
    - Dst: roaring::internal::store_unique
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8658,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8669,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8672,1
    - Dst: roaring::internal::unique
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8674,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8675,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8678,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8681,1
    - Dst: roaring::internal::unique
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8682,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8683,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 5
    argNames:
    - array1
    - length1
    - array2
    - length2
    - output
    argTypes:
    - uint16_t*
    - uint32_t
    - uint16_t*
    - uint32_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8687
      start: 8606
    functionDepth: 0
    functionLinenumber: 8606
    functionLinenumberEnd: 8687
    functionName: roaring::internal::union_vector16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi16
    - roaring::internal::unique
    - memcpy
    - qsort
    - roaring::internal::sse_merge
    - roaring::internal::store_unique
    - _mm_lddqu_si128
    - roaring::internal::union_uint16
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 union_vector16(const uint16_t *__restrict__ array1,
      uint32_t length1,\n                        const uint16_t *__restrict__ array2,
      uint32_t length2,\n                        uint16_t *__restrict__ output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8704,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8705,1
    - Dst: _mm_cmpeq_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8706,1
    - Dst: _mm_cmpeq_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8707,1
    - Dst: _mm_or_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8708,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8712,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8713,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - old
    - newval
    - output
    argTypes:
    - __m128i
    - __m128i
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8716
      start: 8688
    functionDepth: 0
    functionLinenumber: 8688
    functionLinenumberEnd: 8716
    functionName: roaring::internal::store_unique_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm_storeu_si128
    - _mm_alignr_epi8
    - _mm_or_si128
    - _mm_shuffle_epi8
    - _mm_cmpeq_epi16
    - _mm_lddqu_si128
    linkageType: ''
    returnType: CROARING_UNTARGET_REGION
    signature: "CROARING_UNTARGET_REGION store_unique_xor(__m128i old, __m128i newval,\n
      \                                  uint16_t *output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - len
    argTypes:
    - uint16_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 8730
      start: 8717
    functionDepth: 0
    functionLinenumber: 8717
    functionLinenumberEnd: 8730
    functionName: roaring::internal::unique_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CROARING_UNTARGET_REGION
    signature: CROARING_UNTARGET_REGION unique_xor(uint16_t *out, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8737,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8747,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8749,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8751,1
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8752,1
    - Dst: roaring::internal::store_unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8754,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8763,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8771,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8779,1
    - Dst: roaring::internal::store_unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8783,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8786,1
    - Dst: roaring::internal::store_unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8790,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8805,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8809,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8813,1
    - Dst: roaring::internal::unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8814,1
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8815,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8819,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8823,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8827,1
    - Dst: roaring::internal::unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8828,1
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8829,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 67
    argCount: 5
    argNames:
    - array1
    - length1
    - array2
    - length2
    - output
    argTypes:
    - uint16_t*
    - uint32_t
    - uint16_t*
    - uint32_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8834
      start: 8731
    functionDepth: 0
    functionLinenumber: 8731
    functionLinenumberEnd: 8834
    functionName: roaring::internal::xor_vector16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi16
    - memcpy
    - roaring::internal::xor_uint16
    - roaring::internal::store_unique_xor
    - qsort
    - roaring::internal::sse_merge
    - roaring::internal::unique_xor
    - _mm_lddqu_si128
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 xor_vector16(const uint16_t *__restrict__ array1,
      uint32_t length1,\n                      const uint16_t *__restrict__ array2,
      uint32_t length2,\n                      uint16_t *__restrict__ output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8847,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8851,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8880,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8884,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 5
    argNames:
    - set_1
    - size_1
    - set_2
    - size_2
    - buffer
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t*
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 8889
      start: 8842
    functionDepth: 0
    functionLinenumber: 8842
    functionLinenumberEnd: 8889
    functionName: roaring::internal::union_uint32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: size_t
    signature: "size_t union_uint32(const uint32_t *set_1, size_t size_1, const uint32_t
      *set_2,\n                    size_t size_2, uint32_t *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - set_1
    - size_1
    - set_2
    - size_2
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 8933
      start: 8891
    functionDepth: 0
    functionLinenumber: 8891
    functionLinenumberEnd: 8933
    functionName: roaring::internal::union_uint32_card
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t union_uint32_card(const uint32_t *set_1, size_t size_1,\n                         const
      uint32_t *set_2, size_t size_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8940,1
    - Dst: roaring::internal::union_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8943,1
    - Dst: roaring::internal::union_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8946,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8952,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8955,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8962,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8965,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - set_1
    - size_1
    - set_2
    - size_2
    - buffer
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8969
      start: 8937
    functionDepth: 1
    functionLinenumber: 8937
    functionLinenumberEnd: 8969
    functionName: roaring::internal::fast_union_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::union_uint16
    - croaring_avx2
    - roaring::internal::union_vector16
    linkageType: ''
    returnType: size_t
    signature: "size_t fast_union_uint16(const uint16_t *set_1, size_t size_1, const
      uint16_t *set_2,\n                    size_t size_2, uint16_t *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8980,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8981,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8992,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:8993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 9010
      start: 8971
    functionDepth: 0
    functionLinenumber: 8971
    functionLinenumberEnd: 9010
    functionName: roaring::internal::_avx2_memequals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _mm256_loadu_si256
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: CROARING_TARGET_AVX2 _avx2_memequals(const void *s1, const void *s2,
      size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9019,1
    - Dst: roaring::internal::_avx2_memequals
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9020,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9022,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 9027
      start: 9014
    functionDepth: 1
    functionLinenumber: 9014
    functionLinenumberEnd: 9027
    functionName: roaring::internal::memequals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::_avx2_memequals
    - memcmp
    - croaring_avx2
    linkageType: ''
    returnType: bool
    signature: bool memequals(const void *s1, const void *s2, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9593,1
    - Dst: _mm256_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9594,1
    - Dst: _mm256_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9595,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9601,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9608,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9610,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9613,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9614,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9615,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9616,1
    - Dst: _mm256_storeu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9617,1
    - Dst: _mm256_storeu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9619,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9631,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - words
    - length
    - out
    - outcapacity
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint32_t*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 9639
      start: 9588
    functionDepth: 0
    functionLinenumber: 9588
    functionLinenumberEnd: 9639
    functionName: roaring::internal::bitset_extract_setbits_avx2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm256_set1_epi32
    - memcpy
    - _mm256_add_epi32
    - _mm256_storeu_si256
    - _mm256_loadu_si256
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 bitset_extract_setbits_avx2(const uint64_t *words,
      size_t length,\n                                   uint32_t *out, size_t outcapacity,\n
      \                                  uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - words
    - length
    - out
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 9661
      start: 9643
    functionDepth: 0
    functionLinenumber: 9643
    functionLinenumberEnd: 9661
    functionName: roaring::internal::bitset_extract_setbits
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_extract_setbits(const uint64_t *words, size_t length,\n
      \                             uint32_t *out, uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - words1
    - words2
    - length
    - out
    - base
    argTypes:
    - uint64_t*
    - uint64_t*
    - size_t
    - uint16_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 9681
      start: 9663
    functionDepth: 0
    functionLinenumber: 9663
    functionLinenumberEnd: 9681
    functionName: roaring::internal::bitset_extract_intersection_setbits_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_extract_intersection_setbits_uint16(const uint64_t *
      __restrict__ words1,\n                                                  const
      uint64_t * __restrict__ words2,\n                                                  size_t
      length, uint16_t *out,\n                                                  uint16_t
      base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9701,1
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9702,1
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9703,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9710,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9716,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9718,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9722,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9723,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9724,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9725,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9726,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9728,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - words
    - length
    - out
    - outcapacity
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 9746
      start: 9696
    functionDepth: 0
    functionLinenumber: 9696
    functionLinenumberEnd: 9746
    functionName: roaring::internal::bitset_extract_setbits_sse_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi16
    - _mm_loadu_si128
    - _mm_storeu_si128
    - _mm_add_epi16
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 bitset_extract_setbits_sse_uint16(const uint64_t
      *words, size_t length,\n                                         uint16_t *out,
      size_t outcapacity,\n                                         uint16_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - words
    - length
    - out
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint16_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 9774
      start: 9759
    functionDepth: 0
    functionLinenumber: 9759
    functionLinenumberEnd: 9774
    functionName: roaring::internal::bitset_extract_setbits_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_extract_setbits_uint16(const uint64_t *words, size_t
      length,\n                                     uint16_t *out, uint16_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9801
      start: 9778
    functionDepth: 0
    functionLinenumber: 9778
    functionLinenumberEnd: 9801
    functionName: roaring::internal::_asm_bitset_set_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _asm_bitset_set_list_withcard(uint64_t *words, uint64_t card,\n
      \                                 const uint16_t *list, uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9856
      start: 9803
    functionDepth: 0
    functionLinenumber: 9803
    functionLinenumberEnd: 9856
    functionName: roaring::internal::_asm_bitset_set_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _asm_bitset_set_list(uint64_t *words, const uint16_t *list, uint64_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9882
      start: 9858
    functionDepth: 0
    functionLinenumber: 9858
    functionLinenumberEnd: 9882
    functionName: roaring::internal::_asm_bitset_clear_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _asm_bitset_clear_list(uint64_t *words, uint64_t card, const
      uint16_t *list,\n                           uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9899
      start: 9884
    functionDepth: 0
    functionLinenumber: 9884
    functionLinenumberEnd: 9899
    functionName: roaring::internal::_scalar_bitset_clear_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _scalar_bitset_clear_list(uint64_t *words, uint64_t card,
      const uint16_t *list,\n                           uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9916
      start: 9901
    functionDepth: 0
    functionLinenumber: 9901
    functionLinenumberEnd: 9916
    functionName: roaring::internal::_scalar_bitset_set_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _scalar_bitset_set_list_withcard(uint64_t *words, uint64_t
      card,\n                                  const uint16_t *list, uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9930
      start: 9918
    functionDepth: 0
    functionLinenumber: 9918
    functionLinenumberEnd: 9930
    functionName: roaring::internal::_scalar_bitset_set_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: void _scalar_bitset_set_list(uint64_t *words, const uint16_t *list,
      uint64_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9934,1
    - Dst: roaring::internal::_asm_bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9935,1
    - Dst: roaring::internal::_scalar_bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9939
      start: 9932
    functionDepth: 1
    functionLinenumber: 9932
    functionLinenumberEnd: 9939
    functionName: roaring::internal::bitset_clear_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::_asm_bitset_clear_list
    - roaring::internal::_scalar_bitset_clear_list
    - croaring_avx2
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_clear_list(uint64_t *words, uint64_t card, const uint16_t
      *list,\n                           uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9943,1
    - Dst: roaring::internal::_asm_bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9944,1
    - Dst: roaring::internal::_scalar_bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9948
      start: 9941
    functionDepth: 1
    functionLinenumber: 9941
    functionLinenumberEnd: 9948
    functionName: roaring::internal::bitset_set_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::_asm_bitset_set_list_withcard
    - roaring::internal::_scalar_bitset_set_list_withcard
    - croaring_avx2
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_set_list_withcard(uint64_t *words, uint64_t card,\n
      \                                 const uint16_t *list, uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9951,1
    - Dst: roaring::internal::_asm_bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9952,1
    - Dst: roaring::internal::_scalar_bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9956
      start: 9950
    functionDepth: 1
    functionLinenumber: 9950
    functionLinenumberEnd: 9956
    functionName: roaring::internal::bitset_set_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - croaring_avx2
    - roaring::internal::_scalar_bitset_set_list
    - roaring::internal::_asm_bitset_set_list
    linkageType: ''
    returnType: void
    signature: void bitset_set_list(uint64_t *words, const uint16_t *list, uint64_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9973
      start: 9958
    functionDepth: 0
    functionLinenumber: 9958
    functionLinenumberEnd: 9973
    functionName: roaring::internal::bitset_clear_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_clear_list(uint64_t *words, uint64_t card, const uint16_t
      *list,\n                           uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:9984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 9990
      start: 9975
    functionDepth: 0
    functionLinenumber: 9975
    functionLinenumberEnd: 9990
    functionName: roaring::internal::bitset_set_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_set_list_withcard(uint64_t *words, uint64_t card,\n
      \                                 const uint16_t *list, uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 10004
      start: 9992
    functionDepth: 0
    functionLinenumber: 9992
    functionLinenumberEnd: 10004
    functionName: roaring::internal::bitset_set_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: void bitset_set_list(uint64_t *words, const uint16_t *list, uint64_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10020,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 10028
      start: 10011
    functionDepth: 0
    functionLinenumber: 10011
    functionLinenumberEnd: 10028
    functionName: roaring::internal::bitset_flip_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_flip_list_withcard(uint64_t *words, uint64_t card,\n
      \                                  const uint16_t *list, uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 10042
      start: 10030
    functionDepth: 0
    functionLinenumber: 10030
    functionLinenumberEnd: 10042
    functionName: roaring::internal::bitset_flip_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: void bitset_flip_list(uint64_t *words, const uint16_t *list, uint64_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10080,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10087,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10089,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - size
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 10097
      start: 10077
    functionDepth: 0
    functionLinenumber: 10077
    functionLinenumberEnd: 10097
    functionName: roaring::internal::array_container_create_given_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring_malloc
    - roaring_free
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_create_given_capacity(int32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10102
      start: 10100
    functionDepth: 0
    functionLinenumber: 10100
    functionLinenumberEnd: 10102
    functionName: roaring::internal::array_container_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 3
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_create()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 10114
      start: 10105
    functionDepth: 0
    functionLinenumber: 10105
    functionLinenumberEnd: 10114
    functionName: roaring::internal::array_container_create_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t * array_container_create_range(uint32_t min, uint32_t
      max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10119,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - src
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10128
      start: 10117
    functionDepth: 0
    functionLinenumber: 10117
    functionLinenumberEnd: 10128
    functionName: roaring::internal::array_container_clone
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::internal::array_container_create_given_capacity
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_clone(const array_container_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::count_less
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10138,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10141,1
    - Dst: roaring::internal::array_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10143,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10151,1
    - Dst: roaring::internal::array_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - c
    - loc
    - hic
    - offset
    argTypes:
    - array_container_t*
    - container_t**
    - container_t**
    - uint16_t
    constantsTouched: []
    func_position:
      end: 10157
      start: 10130
    functionDepth: 0
    functionLinenumber: 10130
    functionLinenumberEnd: 10157
    functionName: roaring::internal::array_container_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_add
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::count_less
    linkageType: ''
    returnType: void
    signature: "void array_container_offset(const array_container_t *c,\n                            container_t
      **loc, container_t **hic,\n                            uint16_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10164,1
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10169,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - src
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10173
      start: 10159
    functionDepth: 0
    functionLinenumber: 10159
    functionLinenumberEnd: 10173
    functionName: roaring::internal::array_container_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring_realloc
    - roaring_free
    linkageType: ''
    returnType: int
    signature: int array_container_shrink_to_fit(array_container_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10178,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arr
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10182
      start: 10176
    functionDepth: 0
    functionLinenumber: 10176
    functionLinenumberEnd: 10182
    functionName: roaring::internal::array_container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void array_container_free(array_container_t *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 10189
      start: 10184
    functionDepth: 0
    functionLinenumber: 10184
    functionLinenumberEnd: 10189
    functionName: roaring::internal::grow_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t grow_capacity(int32_t capacity)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - min
    - max
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 10193
      start: 10191
    functionDepth: 0
    functionLinenumber: 10191
    functionLinenumberEnd: 10193
    functionName: roaring::internal::clamp
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t clamp(int32_t val, int32_t min, int32_t max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10206,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10207,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10211,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10213,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10218,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - container
    - min
    - preserve
    argTypes:
    - array_container_t*
    - int32_t
    - bool
    constantsTouched: []
    func_position:
      end: 10221
      start: 10195
    functionDepth: 0
    functionLinenumber: 10195
    functionLinenumberEnd: 10221
    functionName: roaring::internal::array_container_grow
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 3
    functionsReached:
    - fprintf
    - roaring_realloc
    - assert
    - roaring_free
    - roaring_malloc
    linkageType: ''
    returnType: void
    signature: "void array_container_grow(array_container_t *container, int32_t min,\n
      \                         bool preserve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10228,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10233
      start: 10224
    functionDepth: 0
    functionLinenumber: 10224
    functionLinenumberEnd: 10233
    functionName: roaring::internal::array_container_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_copy(const array_container_t *src,\n                          array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - arr
    - min
    - max
    - step
    argTypes:
    - array_container_t*
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 10241
      start: 10235
    functionDepth: 0
    functionLinenumber: 10235
    functionLinenumberEnd: 10241
    functionName: roaring::internal::array_container_add_from_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_append
    linkageType: ''
    returnType: void
    signature: "void array_container_add_from_range(array_container_t *arr, uint32_t
      min,\n                                    uint32_t max, uint16_t step)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10253,1
    - Dst: roaring::internal::fast_union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - array_1
    - array_2
    - out
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10258
      start: 10246
    functionDepth: 0
    functionLinenumber: 10246
    functionLinenumberEnd: 10258
    functionName: roaring::internal::array_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::fast_union_uint16
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_union(const array_container_t *array_1,\n                           const
      array_container_t *array_2,\n                           array_container_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10268,1
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10270,1
    - Dst: roaring::internal::difference_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10272,1
    - Dst: roaring::internal::difference_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10276,1
    - Dst: roaring::internal::difference_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - array_1
    - array_2
    - out
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10284
      start: 10264
    functionDepth: 1
    functionLinenumber: 10264
    functionLinenumberEnd: 10284
    functionName: roaring::internal::array_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::difference_uint16
    - roaring::internal::difference_vector16
    - roaring::internal::array_container_grow
    - croaring_avx2
    linkageType: ''
    returnType: void
    signature: "void array_container_andnot(const array_container_t *array_1,\n                            const
      array_container_t *array_2,\n                            array_container_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10297,1
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10301,1
    - Dst: roaring::internal::xor_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10303,1
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10307,1
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - array_1
    - array_2
    - out
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10315
      start: 10291
    functionDepth: 1
    functionLinenumber: 10291
    functionLinenumberEnd: 10315
    functionName: roaring::internal::array_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::xor_vector16
    - roaring::internal::xor_uint16
    - roaring::internal::array_container_grow
    - croaring_avx2
    linkageType: ''
    returnType: void
    signature: "void array_container_xor(const array_container_t *array_1,\n                         const
      array_container_t *array_2,\n                         array_container_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 10319
      start: 10317
    functionDepth: 0
    functionLinenumber: 10317
    functionLinenumberEnd: 10319
    functionName: roaring::internal::minimum_int32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t minimum_int32(int32_t a, int32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10333,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10338,1
    - Dst: roaring::internal::intersect_skewed_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10343,1
    - Dst: roaring::internal::intersect_skewed_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10346,1
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10350,1
    - Dst: roaring::internal::intersect_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10351,1
    - Dst: roaring::internal::intersect_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10354,1
    - Dst: roaring::internal::intersect_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - array1
    - array2
    - out
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10362
      start: 10325
    functionDepth: 1
    functionLinenumber: 10325
    functionLinenumberEnd: 10362
    functionName: roaring::internal::array_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - croaring_avx2
    - roaring::internal::intersect_vector16
    - roaring::internal::intersect_skewed_uint16
    - roaring::internal::array_container_grow
    - roaring::internal::intersect_uint16
    linkageType: ''
    returnType: void
    signature: "void array_container_intersection(const array_container_t *array1,\n
      \                                 const array_container_t *array2,\n                                  array_container_t
      *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::intersect_skewed_uint16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10371,1
    - Dst: roaring::internal::intersect_skewed_uint16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10374,1
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10378,1
    - Dst: roaring::internal::intersect_vector16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10379,1
    - Dst: roaring::internal::intersect_uint16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10382,1
    - Dst: roaring::internal::intersect_uint16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - array1
    - array2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10390
      start: 10366
    functionDepth: 1
    functionLinenumber: 10366
    functionLinenumberEnd: 10390
    functionName: roaring::internal::array_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::intersect_vector16_cardinality
    - roaring::internal::intersect_uint16_cardinality
    - croaring_avx2
    - roaring::internal::intersect_skewed_uint16_cardinality
    linkageType: ''
    returnType: int
    signature: "int array_container_intersection_cardinality(const array_container_t
      *array1,\n                                             const array_container_t
      *array2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::intersect_skewed_uint16_nonempty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10397,1
    - Dst: roaring::internal::intersect_skewed_uint16_nonempty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10400,1
    - Dst: roaring::internal::intersect_uint16_nonempty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - array1
    - array2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10407
      start: 10392
    functionDepth: 0
    functionLinenumber: 10392
    functionLinenumberEnd: 10407
    functionName: roaring::internal::array_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::intersect_skewed_uint16_nonempty
    - roaring::internal::intersect_uint16_nonempty
    linkageType: ''
    returnType: bool
    signature: "bool array_container_intersect(const array_container_t *array1,\n
      \                                 const array_container_t *array2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::intersect_skewed_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10418,1
    - Dst: roaring::internal::intersect_skewed_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10421,1
    - Dst: roaring::internal::intersect_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10427
      start: 10412
    functionDepth: 0
    functionLinenumber: 10412
    functionLinenumberEnd: 10427
    functionName: roaring::internal::array_container_intersection_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::intersect_skewed_uint16
    - roaring::internal::intersect_uint16
    linkageType: ''
    returnType: void
    signature: "void array_container_intersection_inplace(array_container_t *src_1,\n
      \                                         const array_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - vout
    - cont
    - base
    argTypes:
    - void*
    - array_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 10441
      start: 10429
    functionDepth: 0
    functionLinenumber: 10429
    functionLinenumberEnd: 10441
    functionName: roaring::internal::array_container_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED array_container_to_uint32_array(void *vout, const
      array_container_t *cont,\n                                    uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10447,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10450,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10451,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10453,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10456
      start: 10444
    functionDepth: 0
    functionLinenumber: 10444
    functionLinenumberEnd: 10456
    functionName: roaring::internal::array_container_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void array_container_printf(const array_container_t *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10465,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - v
    - base
    argTypes:
    - array_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 10469
      start: 10458
    functionDepth: 0
    functionLinenumber: 10458
    functionLinenumberEnd: 10469
    functionName: roaring::internal::array_container_printf_as_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void array_container_printf_as_uint32_array(const array_container_t
      *v,\n                                            uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ac
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10483
      start: 10473
    functionDepth: 0
    functionLinenumber: 10473
    functionLinenumberEnd: 10483
    functionName: roaring::internal::array_container_number_of_runs
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t array_container_number_of_runs(const array_container_t *ac)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10492,1
    - Dst: roaring::internal::array_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - container
    - buf
    argTypes:
    - array_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 10494
      start: 10491
    functionDepth: 0
    functionLinenumber: 10491
    functionLinenumberEnd: 10494
    functionName: roaring::internal::array_container_write
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_size_in_bytes
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: int32_t array_container_write(const array_container_t *container, char
      *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 10517
      start: 10496
    functionDepth: 0
    functionLinenumber: 10496
    functionLinenumberEnd: 10517
    functionName: roaring::internal::array_container_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_is_subset(const array_container_t *container1,\n
      \                              const array_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10522,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10525,1
    - Dst: roaring::internal::array_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cardinality
    - container
    - buf
    argTypes:
    - int32_t
    - array_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 10528
      start: 10519
    functionDepth: 0
    functionLinenumber: 10519
    functionLinenumberEnd: 10528
    functionName: roaring::internal::array_container_read
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::internal::array_container_size_in_bytes
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: int32_t
    signature: "int32_t array_container_read(int32_t cardinality, array_container_t
      *container,\n                             const char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - cont
    - base
    - iterator
    - ptr
    argTypes:
    - array_container_t*
    - uint32_t
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 10536
      start: 10530
    functionDepth: 0
    functionLinenumber: 10530
    functionLinenumberEnd: 10536
    functionName: roaring::internal::array_container_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: "bool array_container_iterate(const array_container_t *cont, uint32_t
      base,\n                             roaring_iterator iterator, void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - cont
    - base
    - iterator
    - high_bits
    - ptr
    argTypes:
    - array_container_t*
    - uint32_t
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 10546
      start: 10538
    functionDepth: 0
    functionLinenumber: 10538
    functionLinenumberEnd: 10546
    functionName: roaring::internal::array_container_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: "bool array_container_iterate64(const array_container_t *cont, uint32_t
      base,\n                               roaring_iterator64 iterator, uint64_t
      high_bits,\n                               void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10585
      start: 10582
    functionDepth: 0
    functionLinenumber: 10582
    functionLinenumberEnd: 10585
    functionName: roaring::internal::bitset_container_clear
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void bitset_container_clear(bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10588,1
    - Dst: INT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10591
      start: 10587
    functionDepth: 0
    functionLinenumber: 10587
    functionLinenumberEnd: 10591
    functionName: roaring::internal::bitset_container_set_all
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memset
    - INT64_C
    linkageType: ''
    returnType: void
    signature: void bitset_container_set_all(bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10598,1
    - Dst: roaring_aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10604,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10607,1
    - Dst: roaring::internal::bitset_container_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10612
      start: 10596
    functionDepth: 0
    functionLinenumber: 10596
    functionLinenumberEnd: 10612
    functionName: roaring::internal::bitset_container_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 8
    functionsReached:
    - roaring_malloc
    - roaring::internal::bitset_container_clear
    - roaring_aligned_malloc
    - roaring_free
    linkageType: ''
    returnType: bitset_container_t
    signature: bitset_container_t *bitset_container_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10620
      start: 10615
    functionDepth: 0
    functionLinenumber: 10615
    functionLinenumberEnd: 10620
    functionName: roaring::internal::bitset_container_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void bitset_container_copy(const bitset_container_t *source,\n                           bitset_container_t
      *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10637,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10638,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10641,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10644,1
    - Dst: roaring::internal::bitset_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10648,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - bitset
    - min
    - max
    - step
    argTypes:
    - bitset_container_t*
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 10651
      start: 10622
    functionDepth: 0
    functionLinenumber: 10622
    functionLinenumberEnd: 10651
    functionName: roaring::internal::bitset_container_add_from_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - UINT64_C
    - roaring::internal::bitset_container_add
    linkageType: ''
    returnType: void
    signature: "void bitset_container_add_from_range(bitset_container_t *bitset, uint32_t
      min,\n                                     uint32_t max, uint16_t step)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_aligned_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10656,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10660
      start: 10654
    functionDepth: 0
    functionLinenumber: 10654
    functionLinenumberEnd: 10660
    functionName: roaring::internal::bitset_container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring_aligned_free
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void bitset_container_free(bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10665,1
    - Dst: roaring_aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10671,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10674,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - src
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10681
      start: 10663
    functionDepth: 0
    functionLinenumber: 10663
    functionLinenumberEnd: 10681
    functionName: roaring::internal::bitset_container_clone
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring_malloc
    - roaring_aligned_malloc
    - roaring_free
    linkageType: ''
    returnType: bitset_container_t
    signature: bitset_container_t *bitset_container_clone(const bitset_container_t
      *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10695,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10697,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10708,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10720,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10726,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10730,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10742,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10744,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - c
    - loc
    - hic
    - offset
    argTypes:
    - bitset_container_t*
    - container_t**
    - container_t**
    - uint16_t
    constantsTouched: []
    func_position:
      end: 10748
      start: 10683
    functionDepth: 0
    functionLinenumber: 10683
    functionLinenumberEnd: 10748
    functionName: roaring::internal::bitset_container_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - memcpy
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_compute_cardinality
    linkageType: ''
    returnType: void
    signature: "void bitset_container_offset(const bitset_container_t *c,\n                             container_t
      **loc, container_t **hic,\n                             uint16_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_set_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10752,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitset
    - begin
    - end
    argTypes:
    - bitset_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 10755
      start: 10750
    functionDepth: 0
    functionLinenumber: 10750
    functionLinenumberEnd: 10755
    functionName: roaring::internal::bitset_container_set_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_set_range
    - roaring::internal::bitset_container_compute_cardinality
    linkageType: ''
    returnType: void
    signature: "void bitset_container_set_range(bitset_container_t *bitset, uint32_t
      begin,\n                                uint32_t end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10768
      start: 10758
    functionDepth: 0
    functionLinenumber: 10758
    functionLinenumberEnd: 10768
    functionName: roaring::internal::bitset_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_intersect(const bitset_container_t *src_1,\n
      \                                 const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10780,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10781,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10782,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10786
      start: 10776
    functionDepth: 2
    functionLinenumber: 10776
    functionLinenumberEnd: 10786
    functionName: roaring::internal::_scalar_bitset_container_compute_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - hamming
    linkageType: ''
    returnType: int
    signature: int _scalar_bitset_container_compute_cardinality(const bitset_container_t
      *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10789,1
    - Dst: roaring::internal::avx2_harley_seal_popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10790,1
    - Dst: roaring::internal::_scalar_bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10797
      start: 10788
    functionDepth: 1
    functionLinenumber: 10788
    functionLinenumberEnd: 10797
    functionName: roaring::internal::bitset_container_compute_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 4
    functionsReached:
    - roaring::internal::_scalar_bitset_container_compute_cardinality
    - roaring::internal::avx2_harley_seal_popcount256
    - croaring_avx2
    linkageType: ''
    returnType: int
    signature: int bitset_container_compute_cardinality(const bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10801,1
    - Dst: vdupq_n_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10802,1
    - Dst: vdupq_n_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10803,1
    - Dst: vdupq_n_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10804,1
    - Dst: vld1q_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10806,1
    - Dst: vaddq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10807,1
    - Dst: vpaddlq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10807,1
    - Dst: vcntq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10807,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10807,1
    - Dst: vld1q_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10808,1
    - Dst: vaddq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10809,1
    - Dst: vpaddlq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10809,1
    - Dst: vcntq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10809,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10809,1
    - Dst: vld1q_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10810,1
    - Dst: vaddq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10811,1
    - Dst: vpaddlq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10811,1
    - Dst: vcntq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10811,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10811,1
    - Dst: vld1q_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10812,1
    - Dst: vaddq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10813,1
    - Dst: vpaddlq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10813,1
    - Dst: vcntq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10813,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10813,1
    - Dst: vdupq_n_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10815,1
    - Dst: vaddq_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10816,1
    - Dst: vpaddlq_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10816,1
    - Dst: vpaddlq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10816,1
    - Dst: vaddq_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10817,1
    - Dst: vpaddlq_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10817,1
    - Dst: vpaddlq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10817,1
    - Dst: vaddq_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10818,1
    - Dst: vpaddlq_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10818,1
    - Dst: vpaddlq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10818,1
    - Dst: vaddq_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10819,1
    - Dst: vpaddlq_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10819,1
    - Dst: vpaddlq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10819,1
    - Dst: vgetq_lane_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10820,1
    - Dst: vgetq_lane_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10821
      start: 10800
    functionDepth: 0
    functionLinenumber: 10800
    functionLinenumberEnd: 10821
    functionName: roaring::internal::bitset_container_compute_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 4
    functionsReached:
    - vdupq_n_u16
    - vaddq_u16
    - vpaddlq_u8
    - vdupq_n_u64
    - vcntq_u8
    - vld1q_u64
    - vpaddlq_u32
    - vaddq_u64
    - vgetq_lane_u64
    - vpaddlq_u16
    - vreinterpretq_u8_u64
    linkageType: ''
    returnType: int
    signature: int bitset_container_compute_cardinality(const bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10830,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10831,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10832,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:10833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 10836
      start: 10826
    functionDepth: 2
    functionLinenumber: 10826
    functionLinenumberEnd: 10836
    functionName: roaring::internal::bitset_container_compute_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 4
    functionsReached:
    - hamming
    linkageType: ''
    returnType: int
    signature: int bitset_container_compute_cardinality(const bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11253,1
    - Dst: roaring::internal::bitset_extract_setbits_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11254,1
    - Dst: roaring::internal::bitset_extract_setbits
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11257,1
    - Dst: roaring::internal::bitset_extract_setbits
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - out
    - bc
    - base
    argTypes:
    - uint32_t*
    - bitset_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 11263
      start: 11247
    functionDepth: 1
    functionLinenumber: 11247
    functionLinenumberEnd: 11263
    functionName: roaring::internal::bitset_container_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_extract_setbits
    - roaring::internal::bitset_extract_setbits_avx2
    - croaring_avx2
    linkageType: ''
    returnType: int
    signature: "int bitset_container_to_uint32_array(\n    uint32_t *out,\n    const
      bitset_container_t *bc,\n    uint32_t base\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11270,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11280,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11283,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 11290
      start: 11269
    functionDepth: 0
    functionLinenumber: 11269
    functionLinenumberEnd: 11290
    functionName: roaring::internal::bitset_container_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void bitset_container_printf(const bitset_container_t * v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11305,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - v
    - base
    argTypes:
    - bitset_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 11314
      start: 11296
    functionDepth: 0
    functionLinenumber: 11296
    functionLinenumberEnd: 11314
    functionName: roaring::internal::bitset_container_printf_as_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void bitset_container_printf_as_uint32_array(const bitset_container_t
      * v, uint32_t base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11326,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bc
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 11334
      start: 11319
    functionDepth: 2
    functionLinenumber: 11319
    functionLinenumberEnd: 11334
    functionName: roaring::internal::bitset_container_number_of_runs
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - hamming
    linkageType: ''
    returnType: int
    signature: int bitset_container_number_of_runs(bitset_container_t *bc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11339,1
    - Dst: roaring::internal::bitset_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - container
    - buf
    argTypes:
    - bitset_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 11341
      start: 11337
    functionDepth: 0
    functionLinenumber: 11337
    functionLinenumberEnd: 11341
    functionName: roaring::internal::bitset_container_write
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_size_in_bytes
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t bitset_container_write(const bitset_container_t *container,\n
      \                                 char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11347,1
    - Dst: roaring::internal::bitset_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cardinality
    - container
    - buf
    argTypes:
    - int32_t
    - bitset_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 11349
      start: 11344
    functionDepth: 0
    functionLinenumber: 11344
    functionLinenumberEnd: 11349
    functionName: roaring::internal::bitset_container_read
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_size_in_bytes
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t bitset_container_read(int32_t cardinality, bitset_container_t
      *container,\n\t\tconst char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - cont
    - base
    - iterator
    - ptr
    argTypes:
    - bitset_container_t*
    - uint32_t
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 11364
      start: 11351
    functionDepth: 0
    functionLinenumber: 11351
    functionLinenumberEnd: 11364
    functionName: roaring::internal::bitset_container_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: bool bitset_container_iterate(const bitset_container_t *cont, uint32_t
      base, roaring_iterator iterator, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - cont
    - base
    - iterator
    - high_bits
    - ptr
    argTypes:
    - bitset_container_t*
    - uint32_t
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 11379
      start: 11366
    functionDepth: 0
    functionLinenumber: 11366
    functionLinenumberEnd: 11379
    functionName: roaring::internal::bitset_container_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: bool bitset_container_iterate64(const bitset_container_t *cont, uint32_t
      base, roaring_iterator64 iterator, uint64_t high_bits, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11388,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 11396
      start: 11384
    functionDepth: 0
    functionLinenumber: 11384
    functionLinenumberEnd: 11396
    functionName: roaring::internal::_avx2_bitset_container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm256_loadu_si256
    linkageType: ''
    returnType: bool
    signature: bool _avx2_bitset_container_equals(const bitset_container_t *container1,
      const bitset_container_t *container2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11406,1
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11411,1
    - Dst: roaring::internal::_avx2_bitset_container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11412,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 11418
      start: 11400
    functionDepth: 1
    functionLinenumber: 11400
    functionLinenumberEnd: 11418
    functionName: roaring::internal::bitset_container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - INT32_C
    - roaring::internal::_avx2_bitset_container_equals
    - memcmp
    - croaring_avx2
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: ALLOW_UNALIGNED bitset_container_equals(const bitset_container_t *container1,
      const bitset_container_t *container2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 11434
      start: 11420
    functionDepth: 0
    functionLinenumber: 11420
    functionLinenumberEnd: 11434
    functionName: roaring::internal::bitset_container_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_is_subset(const bitset_container_t *container1,\n
      \                         const bitset_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11446,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11464,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11465,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - container
    - start_rank
    - rank
    - element
    argTypes:
    - bitset_container_t*
    - uint32_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 11466
      start: 11436
    functionDepth: 2
    functionLinenumber: 11436
    functionLinenumberEnd: 11466
    functionName: roaring::internal::bitset_container_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - hamming
    - assert
    - __builtin_unreachable
    linkageType: ''
    returnType: bool
    signature: bool bitset_container_select(const bitset_container_t *container, uint32_t
      *start_rank, uint32_t rank, uint32_t *element)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - container
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 11480
      start: 11470
    functionDepth: 0
    functionLinenumber: 11470
    functionLinenumberEnd: 11480
    functionName: roaring::internal::bitset_container_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t bitset_container_minimum(const bitset_container_t *container)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - container
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 11493
      start: 11483
    functionDepth: 0
    functionLinenumber: 11483
    functionLinenumberEnd: 11493
    functionName: roaring::internal::bitset_container_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t bitset_container_maximum(const bitset_container_t *container)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11501,1
    - Dst: hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - container
    - x
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 11508
      start: 11496
    functionDepth: 2
    functionLinenumber: 11496
    functionLinenumberEnd: 11508
    functionName: roaring::internal::bitset_container_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - hamming
    linkageType: ''
    returnType: int
    signature: int bitset_container_rank(const bitset_container_t *container, uint16_t
      x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_ctzll
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - container
    - x
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 11523
      start: 11511
    functionDepth: 1
    functionLinenumber: 11511
    functionLinenumberEnd: 11523
    functionName: roaring::internal::bitset_container_index_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - __builtin_ctzll
    linkageType: ''
    returnType: int
    signature: int bitset_container_index_equalorlarger(const bitset_container_t *container,
      uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11568,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11568,1
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11571,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11571,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11574,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11574,1
    - Dst: roaring::internal::shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11577,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11577,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11580,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11581,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 11583
      start: 11565
    functionDepth: 0
    functionLinenumber: 11565
    functionLinenumberEnd: 11583
    functionName: roaring::internal::container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_free
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - CAST_run
    - CAST_shared
    - assert
    - roaring::internal::shared_container_free
    - CAST_array
    - __builtin_unreachable
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: void
    signature: void container_free(container_t *c, uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11591,1
    - Dst: roaring::internal::bitset_container_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11594,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11594,1
    - Dst: roaring::internal::array_container_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11597,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11597,1
    - Dst: roaring::internal::run_container_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11600,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11600,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 11605
      start: 11590
    functionDepth: 0
    functionLinenumber: 11590
    functionLinenumberEnd: 11605
    functionName: roaring::internal::container_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_printf
    - roaring::internal::run_container_printf
    - roaring::internal::bitset_container_printf
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: void
    signature: void container_printf(const container_t *c, uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11611,1
    - Dst: roaring::internal::bitset_container_printf_as_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11614,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11615,1
    - Dst: roaring::internal::array_container_printf_as_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11618,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11619,1
    - Dst: roaring::internal::run_container_printf_as_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11622,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11623,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - c
    - typecode
    - base
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 11628
      start: 11607
    functionDepth: 0
    functionLinenumber: 11607
    functionLinenumberEnd: 11628
    functionName: roaring::internal::container_printf_as_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_printf_as_uint32_array
    - const_CAST_array
    - roaring::internal::run_container_printf_as_uint32_array
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_printf_as_uint32_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: void
    signature: "void container_printf_as_uint32_array(\n    const container_t *c,
      uint8_t typecode,\n    uint32_t base\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11672,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11676,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11678,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11692,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11693,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - c
    - typecode
    - copy_on_write
    argTypes:
    - container_t*
    - uint8_t*
    - bool
    constantsTouched: []
    func_position:
      end: 11695
      start: 11665
    functionDepth: 0
    functionLinenumber: 11665
    functionLinenumberEnd: 11695
    functionName: roaring::internal::get_copy_of_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_clone
    - CAST_shared
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring_malloc
    linkageType: ''
    returnType: container_t
    signature: "container_t *get_copy_of_container(\n    container_t *c, uint8_t *typecode,\n
      \   bool copy_on_write\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11706,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11706,1
    - Dst: roaring::internal::array_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11708,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11708,1
    - Dst: roaring::internal::run_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11710,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11710,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11715,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 11719
      start: 11701
    functionDepth: 1
    functionLinenumber: 11701
    functionLinenumberEnd: 11719
    functionName: roaring::internal::container_clone
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_clone
    - assert
    - roaring::internal::run_container_clone
    - const_CAST_array
    - roaring::internal::bitset_container_clone
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: container_t *container_clone(const container_t *c, uint8_t typecode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11724,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11725,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11732,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11734,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - sc
    - typecode
    argTypes:
    - shared_container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 11738
      start: 11721
    functionDepth: 0
    functionLinenumber: 11721
    functionLinenumberEnd: 11738
    functionName: roaring::internal::shared_container_extract_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::container_clone
    - assert
    - roaring_free
    linkageType: ''
    returnType: container_t
    signature: "container_t *shared_container_extract_copy(\n    shared_container_t
      *sc, uint8_t *typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11741,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11744,1
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11745,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - container
    argTypes:
    - shared_container_t*
    constantsTouched: []
    func_position:
      end: 11749
      start: 11740
    functionDepth: 0
    functionLinenumber: 11740
    functionLinenumberEnd: 11749
    functionName: roaring::internal::shared_container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - assert
    - roaring_free
    - roaring::internal::container_free
    linkageType: ''
    returnType: void
    signature: void shared_container_free(shared_container_t *container)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11804,1
    - Dst: roaring::internal::bitset_container_set
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ac
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 11808
      start: 11803
    functionDepth: 0
    functionLinenumber: 11803
    functionLinenumberEnd: 11808
    functionName: roaring::internal::bitset_container_from_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 3
    functionsReached:
    - roaring::internal::bitset_container_set
    - roaring::internal::bitset_container_create
    linkageType: ''
    returnType: bitset_container_t
    signature: bitset_container_t *bitset_container_from_array(const array_container_t
      *ac)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11812,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arr
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 11820
      start: 11810
    functionDepth: 0
    functionLinenumber: 11810
    functionLinenumberEnd: 11820
    functionName: roaring::internal::bitset_container_from_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_set_lenrange
    linkageType: ''
    returnType: bitset_container_t
    signature: bitset_container_t *bitset_container_from_run(const run_container_t
      *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11824,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - arr
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 11836
      start: 11822
    functionDepth: 0
    functionLinenumber: 11822
    functionLinenumberEnd: 11836
    functionName: roaring::internal::array_container_from_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_cardinality
    - roaring::internal::array_container_create_given_capacity
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_from_run(const run_container_t *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11840,1
    - Dst: roaring::internal::bitset_extract_setbits_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bits
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 11848
      start: 11838
    functionDepth: 1
    functionLinenumber: 11838
    functionLinenumberEnd: 11848
    functionName: roaring::internal::array_container_from_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 3
    functionsReached:
    - roaring::internal::bitset_extract_setbits_uint16
    - roaring::internal::array_container_create_given_capacity
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_from_bitset(const bitset_container_t
      *bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rc
    - s
    - e
    argTypes:
    - run_container_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 11855
      start: 11851
    functionDepth: 0
    functionLinenumber: 11851
    functionLinenumberEnd: 11855
    functionName: roaring::internal::add_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_run(run_container_t *rc, int s, int e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11859,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11868,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 11877
      start: 11857
    functionDepth: 0
    functionLinenumber: 11857
    functionLinenumberEnd: 11877
    functionName: roaring::internal::run_container_from_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::add_run
    - roaring::internal::run_container_create_given_capacity
    linkageType: ''
    returnType: run_container_t
    signature: run_container_t *run_container_from_array(const array_container_t *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11890,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11903,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11908,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11912,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - rc
    - card
    - resulttype
    argTypes:
    - run_container_t*
    - int32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 11918
      start: 11885
    functionDepth: 0
    functionLinenumber: 11885
    functionLinenumberEnd: 11918
    functionName: roaring::internal::convert_to_bitset_or_array_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_set_lenrange
    - assert
    linkageType: ''
    returnType: container_t
    signature: "container_t *convert_to_bitset_or_array_container(\n    run_container_t
      *rc, int32_t card,\n    uint8_t *resulttype\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11948,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11964,1
    - Dst: roaring::internal::bitset_set_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11969,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - c
    - typecode_after
    argTypes:
    - run_container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 11974
      start: 11925
    functionDepth: 0
    functionLinenumber: 11925
    functionLinenumberEnd: 11974
    functionName: roaring::internal::convert_run_to_efficient_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 3
    functionsReached:
    - roaring::internal::bitset_set_range
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_create
    linkageType: ''
    returnType: container_t
    signature: "container_t *convert_run_to_efficient_container(\n    run_container_t
      *c,\n    uint8_t *typecode_after\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11981,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - typecode_after
    argTypes:
    - run_container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 11984
      start: 11977
    functionDepth: 0
    functionLinenumber: 11977
    functionLinenumberEnd: 11984
    functionName: roaring::internal::convert_run_to_efficient_container_and_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 6
    functionsReached:
    - roaring::internal::run_container_free
    - roaring::internal::convert_run_to_efficient_container
    linkageType: ''
    returnType: container_t
    signature: "container_t *convert_run_to_efficient_container_and_free(\n    run_container_t
      *c,\n    uint8_t *typecode_after\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11998,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:11999,1
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12001,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12006,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12019,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12024,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12030,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12035,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12037,1
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12039,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12044,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12058,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12059,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12064,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12068,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12069,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12079,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12083,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12085,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12086,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12092,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12097,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12098,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 3
    argNames:
    - c
    - typecode_original
    - typecode_after
    argTypes:
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 12101
      start: 11993
    functionDepth: 0
    functionLinenumber: 11993
    functionLinenumberEnd: 12101
    functionName: roaring::internal::convert_run_optimize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_free
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - UINT64_C
    - assert
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::container_free
    - roaring::internal::convert_run_to_efficient_container
    - roaring::internal::add_run
    - CAST_array
    - __builtin_unreachable
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *convert_run_optimize(\n    container_t *c, uint8_t typecode_original,\n
      \   uint8_t *typecode_after\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12108,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12115,1
    - Dst: roaring::internal::bitset_lenrange_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12119,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12120,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12124,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - run
    - min
    - max
    - typecode_after
    argTypes:
    - run_container_t*
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 12130
      start: 12103
    functionDepth: 0
    functionLinenumber: 12103
    functionLinenumberEnd: 12130
    functionName: roaring::internal::container_from_run_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_lenrange_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_set_lenrange
    - roaring::internal::array_container_from_bitset
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_from_run_range(\n    const run_container_t
      *run,\n    uint32_t min, uint32_t max, uint8_t *typecode_after\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12157,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12168
      start: 12152
    functionDepth: 0
    functionLinenumber: 12152
    functionLinenumberEnd: 12168
    functionName: roaring::internal::array_bitset_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_grow
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_andnot(const array_container_t *src_1,\n
      \                                  const bitset_container_t *src_2,\n                                   array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_bitset_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 12176
      start: 12173
    functionDepth: 0
    functionLinenumber: 12173
    functionLinenumberEnd: 12176
    functionName: roaring::internal::array_bitset_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_bitset_container_andnot
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_iandnot(array_container_t *src_1,\n                                    const
      bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12188,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12189,1
    - Dst: roaring::internal::bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12191,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12196,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12202
      start: 12183
    functionDepth: 2
    functionLinenumber: 12183
    functionLinenumberEnd: 12202
    functionName: roaring::internal::bitset_array_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_clear_list
    - roaring::internal::array_container_from_bitset
    linkageType: ''
    returnType: bool
    signature: "bool bitset_array_container_andnot(\n    const bitset_container_t
      *src_1, const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12217,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12221,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12226
      start: 12211
    functionDepth: 2
    functionLinenumber: 12211
    functionLinenumberEnd: 12226
    functionName: roaring::internal::bitset_array_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_clear_list
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_array_container_iandnot(\n    bitset_container_t *src_1,
      const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12243,1
    - Dst: roaring::internal::bitset_container_get
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12251,1
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12260,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12269,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12270,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12273,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12275,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12278,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12285
      start: 12235
    functionDepth: 1
    functionLinenumber: 12235
    functionLinenumberEnd: 12285
    functionName: roaring::internal::run_bitset_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_flip_range
    - roaring::internal::bitset_reset_range
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_get
    - roaring::internal::bitset_container_clone
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_andnot(\n    const run_container_t *src_1,
      const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12302
      start: 12294
    functionDepth: 0
    functionLinenumber: 12294
    functionLinenumberEnd: 12302
    functionName: roaring::internal::run_bitset_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_iandnot(\n    run_container_t *src_1, const
      bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12316,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12318,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12322,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12323,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12325,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12328,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12334
      start: 12311
    functionDepth: 0
    functionLinenumber: 12311
    functionLinenumberEnd: 12334
    functionName: roaring::internal::bitset_run_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - UINT32_C
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_reset_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_run_container_andnot(\n    const bitset_container_t *src_1,
      const run_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12351,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12352,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12354,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12357,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12362
      start: 12343
    functionDepth: 0
    functionLinenumber: 12343
    functionLinenumberEnd: 12362
    functionName: roaring::internal::bitset_run_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - UINT32_C
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_reset_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_run_container_iandnot(\n    bitset_container_t *src_1,
      const run_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12383,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - rc
    - a_in
    - a_out
    argTypes:
    - run_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12410
      start: 12372
    functionDepth: 0
    functionLinenumber: 12372
    functionLinenumberEnd: 12410
    functionName: roaring::internal::run_array_array_subtract
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::advanceUntil
    linkageType: ''
    returnType: int
    signature: "int run_array_array_subtract(const run_container_t *rc,\n                                    const
      array_container_t *a_in,\n                                    array_container_t
      *a_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12427,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12431,1
    - Dst: roaring::internal::array_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12432,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12445,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12460,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12474,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12477,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12483,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12484,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12490,1
    - Dst: roaring::internal::run_array_array_subtract
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12493,1
    - Dst: roaring::internal::bitset_container_from_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12497,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12501
      start: 12416
    functionDepth: 1
    functionLinenumber: 12416
    functionLinenumberEnd: 12501
    functionName: roaring::internal::run_array_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_array_array_subtract
    - memcpy
    - roaring::internal::run_container_free
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::bitset_container_from_run
    - roaring::internal::convert_run_to_efficient_container
    - roaring::internal::run_container_clone
    - MAKE_RLE16
    - roaring::internal::array_container_cardinality
    linkageType: ''
    returnType: int
    signature: "int run_array_container_andnot(\n    const run_container_t *src_1,
      const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12518
      start: 12510
    functionDepth: 0
    functionLinenumber: 12510
    functionLinenumberEnd: 12518
    functionName: roaring::internal::run_array_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: int
    signature: "int run_array_container_iandnot(\n    run_container_t *src_1, const
      array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12527,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12531,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12562
      start: 12522
    functionDepth: 0
    functionLinenumber: 12522
    functionLinenumberEnd: 12562
    functionName: roaring::internal::array_run_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - memmove
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_run_container_andnot(const array_container_t *src_1,\n
      \                               const run_container_t *src_2,\n                                array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 12571
      start: 12568
    functionDepth: 0
    functionLinenumber: 12568
    functionLinenumberEnd: 12571
    functionName: roaring::internal::array_run_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_run_container_andnot
    linkageType: ''
    returnType: void
    signature: "void array_run_container_iandnot(array_container_t *src_1,\n                                 const
      run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12581,1
    - Dst: roaring::internal::run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12582,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12586
      start: 12577
    functionDepth: 0
    functionLinenumber: 12577
    functionLinenumberEnd: 12586
    functionName: roaring::internal::run_run_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_andnot
    - roaring::internal::convert_run_to_efficient_container_and_free
    - roaring::internal::run_container_create
    linkageType: ''
    returnType: int
    signature: "int run_run_container_andnot(\n    const run_container_t *src_1, const
      run_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12603
      start: 12595
    functionDepth: 0
    functionLinenumber: 12595
    functionLinenumberEnd: 12603
    functionName: roaring::internal::run_run_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: int
    signature: "int run_run_container_iandnot(\n    run_container_t *src_1, const
      run_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12613
      start: 12609
    functionDepth: 0
    functionLinenumber: 12609
    functionLinenumberEnd: 12613
    functionName: roaring::internal::array_array_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_andnot
    linkageType: ''
    returnType: void
    signature: "void array_array_container_andnot(const array_container_t *src_1,\n
      \                                 const array_container_t *src_2,\n                                  array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12620
      start: 12617
    functionDepth: 0
    functionLinenumber: 12617
    functionLinenumberEnd: 12620
    functionName: roaring::internal::array_array_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_andnot
    linkageType: ''
    returnType: void
    signature: "void array_array_container_iandnot(array_container_t *src_1,\n                                   const
      array_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12631,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12634,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12641
      start: 12627
    functionDepth: 0
    functionLinenumber: 12627
    functionLinenumberEnd: 12641
    functionName: roaring::internal::bitset_bitset_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_andnot(\n    const bitset_container_t
      *src_1, const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12656,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12663
      start: 12650
    functionDepth: 0
    functionLinenumber: 12650
    functionLinenumberEnd: 12663
    functionName: roaring::internal::bitset_bitset_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_iandnot(\n    bitset_container_t *src_1,
      const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 12699
      start: 12675
    functionDepth: 0
    functionLinenumber: 12675
    functionLinenumberEnd: 12699
    functionName: roaring::internal::array_container_equal_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_equal_bitset(const array_container_t* container1,\n
      \                                 const bitset_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12703,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12721
      start: 12701
    functionDepth: 0
    functionLinenumber: 12701
    functionLinenumberEnd: 12721
    functionName: roaring::internal::run_container_equals_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: bool
    signature: "bool run_container_equals_array(const run_container_t* container1,\n
      \                               const array_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12738,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12742,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 12749
      start: 12723
    functionDepth: 0
    functionLinenumber: 12723
    functionLinenumberEnd: 12749
    functionName: roaring::internal::run_container_equals_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_contains
    - roaring::internal::bitset_container_contains_range
    linkageType: ''
    returnType: bool
    signature: "bool run_container_equals_bitset(const run_container_t* container1,\n
      \                                const bitset_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12772,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12795
      start: 12768
    functionDepth: 0
    functionLinenumber: 12768
    functionLinenumberEnd: 12795
    functionName: roaring::internal::array_bitset_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_grow
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_intersection(const array_container_t *src_1,\n
      \                                        const bitset_container_t *src_2,\n
      \                                        array_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 12807
      start: 12798
    functionDepth: 0
    functionLinenumber: 12798
    functionLinenumberEnd: 12807
    functionName: roaring::internal::array_bitset_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: int
    signature: "int array_bitset_container_intersection_cardinality(\n    const array_container_t
      *src_1, const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 12818
      start: 12810
    functionDepth: 0
    functionLinenumber: 12810
    functionLinenumberEnd: 12818
    functionName: roaring::internal::array_bitset_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: bool
    signature: "bool array_bitset_container_intersect(const array_container_t *src_1,\n
      \                                        const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12826,1
    - Dst: roaring::internal::array_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12827,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12831,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12852,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12861
      start: 12823
    functionDepth: 0
    functionLinenumber: 12823
    functionLinenumberEnd: 12861
    functionName: roaring::internal::array_run_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_copy
    - roaring::internal::advanceUntil
    - roaring::internal::array_container_grow
    - roaring::internal::run_container_is_full
    linkageType: ''
    returnType: void
    signature: "void array_run_container_intersection(const array_container_t *src_1,\n
      \                                     const run_container_t *src_2,\n                                      array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12871,1
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12872,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12882,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12894,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12900,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12905,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12909,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12909,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12910,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12914,1
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12924,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12934,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12937,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12937,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12938,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12943,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12944,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12944,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 12953
      start: 12867
    functionDepth: 1
    functionLinenumber: 12867
    functionLinenumberEnd: 12953
    functionName: roaring::internal::run_bitset_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    - UINT32_C
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::bitset_container_contains
    - roaring::internal::run_container_is_full
    - roaring::internal::bitset_reset_range
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_clone
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_intersection(\n    const run_container_t
      *src_1, const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12958,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12979,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 12987
      start: 12956
    functionDepth: 0
    functionLinenumber: 12956
    functionLinenumberEnd: 12987
    functionName: roaring::internal::array_run_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::advanceUntil
    - roaring::internal::run_container_is_full
    linkageType: ''
    returnType: int
    signature: "int array_run_container_intersection_cardinality(const array_container_t
      *src_1,\n                                                 const run_container_t
      *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12993,1
    - Dst: roaring::internal::bitset_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:12994,1
    - Dst: roaring::internal::bitset_lenrange_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13003
      start: 12991
    functionDepth: 0
    functionLinenumber: 12991
    functionLinenumberEnd: 13003
    functionName: roaring::internal::run_bitset_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_lenrange_cardinality
    - roaring::internal::run_container_is_full
    - roaring::internal::bitset_container_cardinality
    linkageType: ''
    returnType: int
    signature: "int run_bitset_container_intersection_cardinality(\n    const run_container_t
      *src_1, const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13008,1
    - Dst: roaring::internal::array_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13009,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13028,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 13035
      start: 13006
    functionDepth: 0
    functionLinenumber: 13006
    functionLinenumberEnd: 13035
    functionName: roaring::internal::array_run_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::advanceUntil
    - roaring::internal::array_container_empty
    - roaring::internal::run_container_is_full
    linkageType: ''
    returnType: bool
    signature: "bool array_run_container_intersect(const array_container_t *src_1,\n
      \                                     const run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13041,1
    - Dst: roaring::internal::bitset_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13042,1
    - Dst: roaring::internal::bitset_lenrange_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13046,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13049
      start: 13039
    functionDepth: 0
    functionLinenumber: 13039
    functionLinenumberEnd: 13049
    functionName: roaring::internal::run_bitset_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_lenrange_empty
    - roaring::internal::bitset_container_empty
    - roaring::internal::run_container_is_full
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_intersect(const run_container_t *src_1,\n
      \                                      const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13062,1
    - Dst: bitset_container_and_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13064,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13064,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13065,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13069,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13071,1
    - Dst: roaring::internal::bitset_extract_intersection_setbits_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13072,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13074,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13077
      start: 13056
    functionDepth: 1
    functionLinenumber: 13056
    functionLinenumberEnd: 13077
    functionName: roaring::internal::bitset_bitset_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - bitset_container_and_nocard
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_extract_intersection_setbits_uint16
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_intersection(\n    const bitset_container_t
      *src_1, const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bitset_container_and_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13086,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13087,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13090,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13092,1
    - Dst: roaring::internal::bitset_extract_intersection_setbits_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13093,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13098
      start: 13079
    functionDepth: 1
    functionLinenumber: 13079
    functionLinenumberEnd: 13098
    functionName: roaring::internal::bitset_bitset_container_intersection_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - bitset_container_and_nocard
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_extract_intersection_setbits_uint16
    - CAST_bitset
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_intersection_inplace(\n    bitset_container_t
      *src_1, const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_set_all
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13131,1
    - Dst: roaring::internal::bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13139
      start: 13128
    functionDepth: 2
    functionLinenumber: 13128
    functionLinenumberEnd: 13139
    functionName: roaring::internal::array_container_negation
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_clear_list
    - roaring::internal::bitset_container_set_all
    linkageType: ''
    returnType: void
    signature: "void array_container_negation(const array_container_t *src,\n                              bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13152
      start: 13148
    functionDepth: 0
    functionLinenumber: 13148
    functionLinenumberEnd: 13152
    functionName: roaring::internal::bitset_container_negation
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_negation_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_negation(\n    const bitset_container_t *src,
      container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13167
      start: 13163
    functionDepth: 0
    functionLinenumber: 13163
    functionLinenumberEnd: 13167
    functionName: roaring::internal::bitset_container_negation_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_negation_range_inplace
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_negation_inplace(\n    bitset_container_t *src,
      container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13177
      start: 13175
    functionDepth: 0
    functionLinenumber: 13175
    functionLinenumberEnd: 13177
    functionName: roaring::internal::run_container_negation
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_negation_range
    linkageType: ''
    returnType: int
    signature: int run_container_negation(const run_container_t *src, container_t
      **dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13188
      start: 13186
    functionDepth: 0
    functionLinenumber: 13186
    functionLinenumberEnd: 13188
    functionName: roaring::internal::run_container_negation_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_negation_range_inplace
    linkageType: ''
    returnType: int
    signature: int run_container_negation_inplace(run_container_t *src, container_t
      **dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13202,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13223,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13224,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13232,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13239,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13255,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - array_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 13259
      start: 13195
    functionDepth: 1
    functionLinenumber: 13195
    functionLinenumberEnd: 13259
    functionName: roaring::internal::array_container_negation_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - memcpy
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_flip_range
    - roaring::internal::array_container_clone
    linkageType: ''
    returnType: bool
    signature: "bool array_container_negation_range(\n    const array_container_t
      *src,\n    const int range_start, const int range_end,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - array_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 13274
      start: 13265
    functionDepth: 0
    functionLinenumber: 13265
    functionLinenumberEnd: 13274
    functionName: roaring::internal::array_container_negation_range_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: bool
    signature: "bool array_container_negation_range_inplace(\n    array_container_t
      *src,\n    const int range_start, const int range_end,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13294,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13295,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13296,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13302,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - bitset_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 13306
      start: 13283
    functionDepth: 1
    functionLinenumber: 13283
    functionLinenumberEnd: 13306
    functionName: roaring::internal::bitset_container_negation_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_flip_range
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_clone
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_negation_range(\n    const bitset_container_t
      *src,\n    const int range_start, const int range_end,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13322,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13323,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13328,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - bitset_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 13331
      start: 13317
    functionDepth: 0
    functionLinenumber: 13317
    functionLinenumberEnd: 13331
    functionName: roaring::internal::bitset_container_negation_range_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_flip_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_negation_range_inplace(\n    bitset_container_t
      *src,\n    const int range_start, const int range_end,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13348,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13352,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13360,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13364,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13368,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - run_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 13372
      start: 13339
    functionDepth: 1
    functionLinenumber: 13339
    functionLinenumberEnd: 13372
    functionName: roaring::internal::run_container_negation_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_free
    - roaring::internal::run_container_smart_append_exclusive
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::convert_run_to_efficient_container
    - roaring::internal::run_container_clone
    linkageType: ''
    returnType: int
    signature: "int run_container_negation_range(\n    const run_container_t *src,\n
      \   const int range_start, const int range_end,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13404,1
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13405,1
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13409,1
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13412,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13418,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13436,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13440,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13446,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13451,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13452,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - run_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 13455
      start: 13381
    functionDepth: 0
    functionLinenumber: 13381
    functionLinenumberEnd: 13455
    functionName: roaring::internal::run_container_negation_range_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_free
    - roaring::internal::run_container_smart_append_exclusive
    - roaring::internal::convert_run_to_efficient_container
    - roaring::internal::run_container_contains
    - MAKE_RLE16
    linkageType: ''
    returnType: int
    signature: "int run_container_negation_range_inplace(\n    run_container_t *src,\n
      \   const int range_start, const int range_end,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13480
      start: 13467
    functionDepth: 0
    functionLinenumber: 13467
    functionLinenumberEnd: 13480
    functionName: roaring::internal::array_container_is_subset_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: bool
    signature: "bool array_container_is_subset_bitset(const array_container_t* container1,\n
      \                                     const bitset_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13484,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13490,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 13503
      start: 13482
    functionDepth: 0
    functionLinenumber: 13482
    functionLinenumberEnd: 13503
    functionName: roaring::internal::run_container_is_subset_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::advanceUntil
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: bool
    signature: "bool run_container_is_subset_array(const run_container_t* container1,\n
      \                                  const array_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 13526
      start: 13505
    functionDepth: 0
    functionLinenumber: 13505
    functionLinenumberEnd: 13526
    functionName: roaring::internal::array_container_is_subset_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: bool
    signature: "bool array_container_is_subset_run(const array_container_t* container1,\n
      \                                  const run_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13532,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13538,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13546,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13552
      start: 13528
    functionDepth: 0
    functionLinenumber: 13528
    functionLinenumberEnd: 13552
    functionName: roaring::internal::run_container_is_subset_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_cardinality
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: bool
    signature: "bool run_container_is_subset_bitset(const run_container_t* container1,\n
      \                                   const bitset_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13558,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - bitset_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 13596
      start: 13554
    functionDepth: 0
    functionLinenumber: 13554
    functionLinenumberEnd: 13596
    functionName: roaring::internal::bitset_container_is_subset_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_is_subset_run(const bitset_container_t* container1,\n
      \                                   const run_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13621,1
    - Dst: roaring::internal::bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13624
      start: 13618
    functionDepth: 2
    functionLinenumber: 13618
    functionLinenumberEnd: 13624
    functionName: roaring::internal::array_bitset_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_set_list_withcard
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_union(const array_container_t *src_1,\n
      \                                 const bitset_container_t *src_2,\n                                  bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13632,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13635
      start: 13629
    functionDepth: 2
    functionLinenumber: 13629
    functionLinenumberEnd: 13635
    functionName: roaring::internal::array_bitset_container_lazy_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_set_list
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_lazy_union(const array_container_t *src_1,\n
      \                                      const bitset_container_t *src_2,\n                                       bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13640,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13640,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13641,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13644,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13647
      start: 13637
    functionDepth: 0
    functionLinenumber: 13637
    functionLinenumberEnd: 13647
    functionName: roaring::internal::run_bitset_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_copy
    - roaring::internal::run_container_is_full
    - roaring::internal::bitset_set_lenrange
    - assert
    linkageType: ''
    returnType: void
    signature: "void run_bitset_container_union(const run_container_t *src_1,\n                                const
      bitset_container_t *src_2,\n                                bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13652,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13652,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13653,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13659
      start: 13649
    functionDepth: 0
    functionLinenumber: 13649
    functionLinenumberEnd: 13659
    functionName: roaring::internal::run_bitset_container_lazy_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_copy
    - assert
    - roaring::internal::run_container_is_full
    - roaring::internal::bitset_set_lenrange
    linkageType: ''
    returnType: void
    signature: "void run_bitset_container_lazy_union(const run_container_t *src_1,\n
      \                                    const bitset_container_t *src_2,\n                                     bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13665,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13666,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13670,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13675,1
    - Dst: roaring::internal::run_container_append_value_first
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13679,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13684,1
    - Dst: roaring::internal::run_container_append_value
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13687,1
    - Dst: roaring::internal::run_container_append_value
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13694,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13700,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 13704
      start: 13662
    functionDepth: 0
    functionLinenumber: 13662
    functionLinenumberEnd: 13704
    functionName: roaring::internal::array_run_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_append_first
    - roaring::internal::run_container_is_full
    - roaring::internal::run_container_copy
    - roaring::internal::run_container_append
    - roaring::internal::run_container_append_value_first
    - roaring::internal::run_container_append_value
    linkageType: ''
    returnType: void
    signature: "void array_run_container_union(const array_container_t *src_1,\n                               const
      run_container_t *src_2,\n                               run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13708,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13714,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13715,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13726,1
    - Dst: roaring::internal::run_container_append_value_first
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13730,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13736,1
    - Dst: roaring::internal::run_container_append_value
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13739,1
    - Dst: roaring::internal::run_container_append_value
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13746,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13752,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 13756
      start: 13706
    functionDepth: 0
    functionLinenumber: 13706
    functionLinenumberEnd: 13756
    functionName: roaring::internal::array_run_container_inplace_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_append_first
    - roaring::internal::run_container_is_full
    - roaring::internal::run_container_append
    - memmove
    - roaring::internal::run_container_append_value_first
    - roaring::internal::run_container_append_value
    linkageType: ''
    returnType: void
    signature: "void array_run_container_inplace_union(const array_container_t *src_1,\n
      \                                      run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13764,1
    - Dst: roaring::internal::array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13766,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13766,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13772,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13775,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13776,1
    - Dst: roaring::internal::bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13777,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13782,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13783,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13788
      start: 13758
    functionDepth: 2
    functionLinenumber: 13758
    functionLinenumberEnd: 13788
    functionName: roaring::internal::array_array_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_set_list
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::bitset_set_list_withcard
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_from_bitset
    - roaring::internal::array_container_union
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_union(\n    const array_container_t *src_1,
      const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13798,1
    - Dst: roaring::internal::array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13800,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13800,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13806,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13807,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13812,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13815,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13816,1
    - Dst: roaring::internal::bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13817,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13823,1
    - Dst: roaring::internal::bitset_extract_setbits_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13826,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13830,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13835
      start: 13790
    functionDepth: 2
    functionLinenumber: 13790
    functionLinenumberEnd: 13835
    functionName: roaring::internal::array_array_container_inplace_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_extract_setbits_uint16
    - roaring::internal::bitset_set_list
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::bitset_set_list_withcard
    - roaring::internal::bitset_container_create
    - memmove
    - roaring::internal::array_container_union
    - CAST_array
    - roaring::internal::array_container_grow
    - roaring::internal::union_uint16
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_inplace_union(\n    array_container_t *src_1,
      const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13844,1
    - Dst: roaring::internal::array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13846,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13846,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13852,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13855,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13856,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13861
      start: 13838
    functionDepth: 2
    functionLinenumber: 13838
    functionLinenumberEnd: 13861
    functionName: roaring::internal::array_array_container_lazy_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_set_list
    - roaring::internal::array_container_create_given_capacity
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_union
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_lazy_union(\n    const array_container_t
      *src_1, const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13872,1
    - Dst: roaring::internal::array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13874,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13874,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13880,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13881,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13886,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13889,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13890,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13891,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13895
      start: 13864
    functionDepth: 2
    functionLinenumber: 13864
    functionLinenumberEnd: 13895
    functionName: roaring::internal::array_array_container_lazy_inplace_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_set_list
    - roaring::internal::array_container_create_given_capacity
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - memmove
    - roaring::internal::array_container_union
    - CAST_array
    - roaring::internal::union_uint16
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_lazy_inplace_union(\n    array_container_t
      *src_1, const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13921,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13922,1
    - Dst: roaring::internal::bitset_flip_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13923,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13928,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13934
      start: 13917
    functionDepth: 1
    functionLinenumber: 13917
    functionLinenumberEnd: 13934
    functionName: roaring::internal::array_bitset_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_flip_list_withcard
    linkageType: ''
    returnType: bool
    signature: "bool array_bitset_container_xor(\n    const array_container_t *src_1,
      const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13944,1
    - Dst: roaring::internal::bitset_flip_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13947
      start: 13941
    functionDepth: 1
    functionLinenumber: 13941
    functionLinenumberEnd: 13947
    functionName: roaring::internal::array_bitset_container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_flip_list
    - roaring::internal::bitset_container_copy
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_lazy_xor(const array_container_t *src_1,\n
      \                                    const bitset_container_t *src_2,\n                                     bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13960,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13962,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13965,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13966,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13968,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13971,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 13977
      start: 13956
    functionDepth: 0
    functionLinenumber: 13956
    functionLinenumberEnd: 13977
    functionName: roaring::internal::run_bitset_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - UINT32_C
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_flip_range
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_from_bitset
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_xor(\n    const run_container_t *src_1,
      const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13987,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13990,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:13991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13994
      start: 13984
    functionDepth: 0
    functionLinenumber: 13984
    functionLinenumberEnd: 13994
    functionName: roaring::internal::run_bitset_container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_copy
    - UINT32_C
    - roaring::internal::bitset_flip_range
    linkageType: ''
    returnType: void
    signature: "void run_bitset_container_lazy_xor(const run_container_t *src_1,\n
      \                                  const bitset_container_t *src_2,\n                                   bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14012,1
    - Dst: roaring::internal::array_run_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14013,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14016,1
    - Dst: roaring::internal::array_container_from_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14024,1
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14026,1
    - Dst: roaring::internal::bitset_container_from_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14038
      start: 14000
    functionDepth: 0
    functionLinenumber: 14000
    functionLinenumberEnd: 14038
    functionName: roaring::internal::array_run_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_create
    - roaring::internal::array_container_from_run
    - roaring::internal::bitset_container_from_run
    - roaring::internal::convert_run_to_efficient_container_and_free
    - roaring::internal::array_run_container_lazy_xor
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: int
    signature: "int array_run_container_xor(\n    const array_container_t *src_1,
      const run_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14048,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14055,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14059,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14065,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14069,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14073
      start: 14045
    functionDepth: 0
    functionLinenumber: 14045
    functionLinenumberEnd: 14073
    functionName: roaring::internal::array_run_container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_smart_append_exclusive
    linkageType: ''
    returnType: void
    signature: "void array_run_container_lazy_xor(const array_container_t *src_1,\n
      \                                 const run_container_t *src_2,\n                                  run_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14083,1
    - Dst: roaring::internal::run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14084,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14088
      start: 14079
    functionDepth: 0
    functionLinenumber: 14079
    functionLinenumberEnd: 14088
    functionName: roaring::internal::run_run_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::convert_run_to_efficient_container_and_free
    - roaring::internal::run_container_xor
    - roaring::internal::run_container_create
    linkageType: ''
    returnType: int
    signature: "int run_run_container_xor(\n    const run_container_t *src_1, const
      run_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14105,1
    - Dst: roaring::internal::array_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14106,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14106,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14109,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14111,1
    - Dst: roaring::internal::bitset_flip_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14112,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14116,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14122
      start: 14098
    functionDepth: 1
    functionLinenumber: 14098
    functionLinenumberEnd: 14122
    functionName: roaring::internal::array_array_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::array_container_xor
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::bitset_flip_list_withcard
    - roaring::internal::array_container_from_bitset
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_xor(\n    const array_container_t *src_1,
      const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14131,1
    - Dst: roaring::internal::array_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14133,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14133,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14136,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14139,1
    - Dst: roaring::internal::bitset_flip_list
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14144
      start: 14124
    functionDepth: 1
    functionLinenumber: 14124
    functionLinenumberEnd: 14144
    functionName: roaring::internal::array_array_container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::array_container_xor
    - CAST_bitset
    - roaring::internal::bitset_flip_list
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_lazy_xor(\n    const array_container_t
      *src_1, const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14155,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14158,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14165
      start: 14151
    functionDepth: 0
    functionLinenumber: 14151
    functionLinenumberEnd: 14165
    functionName: roaring::internal::bitset_bitset_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_xor(\n    const bitset_container_t *src_1,
      const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_flip_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14179,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14183,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14188
      start: 14174
    functionDepth: 1
    functionLinenumber: 14174
    functionLinenumberEnd: 14188
    functionName: roaring::internal::bitset_array_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_flip_list_withcard
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_array_container_ixor(\n    bitset_container_t *src_1,
      const array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14201,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14208
      start: 14195
    functionDepth: 0
    functionLinenumber: 14195
    functionLinenumberEnd: 14208
    functionName: roaring::internal::bitset_bitset_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_ixor(\n    bitset_container_t *src_1,
      const bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14217
      start: 14210
    functionDepth: 0
    functionLinenumber: 14210
    functionLinenumberEnd: 14217
    functionName: roaring::internal::array_bitset_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: bool
    signature: "bool array_bitset_container_ixor(\n    array_container_t *src_1, const
      bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14233
      start: 14226
    functionDepth: 0
    functionLinenumber: 14226
    functionLinenumberEnd: 14233
    functionName: roaring::internal::run_bitset_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_ixor(\n    run_container_t *src_1, const
      bitset_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14242
      start: 14235
    functionDepth: 0
    functionLinenumber: 14235
    functionLinenumberEnd: 14242
    functionName: roaring::internal::bitset_run_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_run_container_ixor(\n    bitset_container_t *src_1, const
      run_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14255
      start: 14248
    functionDepth: 0
    functionLinenumber: 14248
    functionLinenumberEnd: 14255
    functionName: roaring::internal::array_run_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: int
    signature: "int array_run_container_ixor(\n    array_container_t *src_1, const
      run_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14264
      start: 14257
    functionDepth: 0
    functionLinenumber: 14257
    functionLinenumberEnd: 14264
    functionName: roaring::internal::run_array_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: int
    signature: "int run_array_container_ixor(\n    run_container_t *src_1, const array_container_t
      *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14273
      start: 14266
    functionDepth: 0
    functionLinenumber: 14266
    functionLinenumberEnd: 14273
    functionName: roaring::internal::array_array_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_ixor(\n    array_container_t *src_1, const
      array_container_t *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 14282
      start: 14275
    functionDepth: 0
    functionLinenumber: 14275
    functionLinenumberEnd: 14282
    functionName: roaring::internal::run_run_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: int
    signature: "int run_run_container_ixor(\n    run_container_t *src_1, const run_container_t
      *src_2,\n    container_t **dst\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::recoverRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14328,1
    - Dst: roaring::internal::makeRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14355,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - run
    - pos
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 14359
      start: 14312
    functionDepth: 0
    functionLinenumber: 14312
    functionLinenumberEnd: 14359
    functionName: roaring::internal::run_container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::recoverRoomAtIndex
    - roaring::internal::makeRoomAtIndex
    linkageType: ''
    returnType: bool
    signature: bool run_container_add(run_container_t *run, uint16_t pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14365,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14370,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - size
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 14377
      start: 14362
    functionDepth: 0
    functionLinenumber: 14362
    functionLinenumberEnd: 14377
    functionName: roaring::internal::run_container_create_given_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 5
    functionsReached:
    - roaring_malloc
    - roaring_free
    linkageType: ''
    returnType: run_container_t
    signature: run_container_t *run_container_create_given_capacity(int32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14384,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - src
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14387
      start: 14379
    functionDepth: 0
    functionLinenumber: 14379
    functionLinenumberEnd: 14387
    functionName: roaring::internal::run_container_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring_realloc
    - roaring_free
    linkageType: ''
    returnType: int
    signature: int run_container_shrink_to_fit(run_container_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14391
      start: 14389
    functionDepth: 0
    functionLinenumber: 14389
    functionLinenumberEnd: 14391
    functionName: roaring::internal::run_container_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 10
    functionsReached:
    - roaring::internal::run_container_create_given_capacity
    linkageType: ''
    returnType: run_container_t
    signature: run_container_t *run_container_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14394,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14400
      start: 14393
    functionDepth: 0
    functionLinenumber: 14393
    functionLinenumberEnd: 14400
    functionName: roaring::internal::run_container_clone
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 3
    functionsReached:
    - memcpy
    - roaring::internal::run_container_create_given_capacity
    linkageType: ''
    returnType: run_container_t
    signature: run_container_t *run_container_clone(const run_container_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_index_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14412,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14425,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14426,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14435,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14436,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - c
    - loc
    - hic
    - offset
    argTypes:
    - run_container_t*
    - container_t**
    - container_t**
    - uint16_t
    constantsTouched: []
    func_position:
      end: 14457
      start: 14402
    functionDepth: 0
    functionLinenumber: 14402
    functionLinenumberEnd: 14457
    functionName: roaring::internal::run_container_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - memcpy
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::run_container_index_equalorlarger
    linkageType: ''
    returnType: void
    signature: "void run_container_offset(const run_container_t *c,\n                          container_t
      **loc, container_t **hic,\n                          uint16_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14462,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14466
      start: 14460
    functionDepth: 0
    functionLinenumber: 14460
    functionLinenumberEnd: 14466
    functionName: roaring::internal::run_container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 11
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void run_container_free(run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14477,1
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14481,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14482,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14486,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14488,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14492,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14494,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - run
    - min
    - copy
    argTypes:
    - run_container_t*
    - int32_t
    - bool
    constantsTouched: []
    func_position:
      end: 14495
      start: 14468
    functionDepth: 0
    functionLinenumber: 14468
    functionLinenumberEnd: 14495
    functionName: roaring::internal::run_container_grow
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 5
    functionsReached:
    - fprintf
    - roaring_realloc
    - assert
    - roaring_free
    - roaring_malloc
    linkageType: ''
    returnType: void
    signature: void run_container_grow(run_container_t *run, int32_t min, bool copy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14501,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14505
      start: 14498
    functionDepth: 0
    functionLinenumber: 14498
    functionLinenumberEnd: 14505
    functionName: roaring::internal::run_container_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 5
    functionsReached:
    - roaring::internal::run_container_grow
    - memcpy
    linkageType: ''
    returnType: void
    signature: void run_container_copy(const run_container_t *src, run_container_t
      *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14518,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14522,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14528,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14535,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14538,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14551,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14554,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14558,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14561
      start: 14509
    functionDepth: 0
    functionLinenumber: 14509
    functionLinenumberEnd: 14561
    functionName: roaring::internal::run_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_append
    - roaring::internal::run_container_copy
    - roaring::internal::run_container_append_first
    linkageType: ''
    returnType: void
    signature: "void run_container_union(const run_container_t *src_1,\n                         const
      run_container_t *src_2, run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14577,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14585,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14586,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14596,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14599,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14611,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14614,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14618,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14621
      start: 14565
    functionDepth: 0
    functionLinenumber: 14565
    functionLinenumberEnd: 14621
    functionName: roaring::internal::run_container_union_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_append_first
    - roaring::internal::run_container_copy
    - roaring::internal::run_container_append
    - memmove
    linkageType: ''
    returnType: void
    signature: "void run_container_union_inplace(run_container_t *src_1,\n                                 const
      run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14633,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14641,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14645,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14651,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14661
      start: 14626
    functionDepth: 0
    functionLinenumber: 14626
    functionLinenumberEnd: 14661
    functionName: roaring::internal::run_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_smart_append_exclusive
    linkageType: ''
    returnType: void
    signature: "void run_container_xor(const run_container_t *src_1,\n                       const
      run_container_t *src_2, run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14672,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14676,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14683,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14741
      start: 14665
    functionDepth: 0
    functionLinenumber: 14665
    functionLinenumberEnd: 14741
    functionName: roaring::internal::run_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_copy
    linkageType: ''
    returnType: void
    signature: "void run_container_intersection(const run_container_t *src_1,\n                                const
      run_container_t *src_2,\n                                run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14750,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14753,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14811
      start: 14744
    functionDepth: 0
    functionLinenumber: 14744
    functionLinenumberEnd: 14811
    functionName: roaring::internal::run_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: int
    signature: "int run_container_intersection_cardinality(const run_container_t *src_1,\n
      \                                          const run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14819,1
    - Dst: roaring::internal::run_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14822,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14849
      start: 14813
    functionDepth: 0
    functionLinenumber: 14813
    functionLinenumberEnd: 14849
    functionName: roaring::internal::run_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_empty
    linkageType: ''
    returnType: bool
    signature: "bool run_container_intersect(const run_container_t *src_1,\n                                const
      run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14859,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14873,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14889,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14903,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14906,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14911
      start: 14854
    functionDepth: 0
    functionLinenumber: 14854
    functionLinenumberEnd: 14911
    functionName: roaring::internal::run_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_grow
    - memcpy
    - MAKE_RLE16
    linkageType: ''
    returnType: void
    signature: "void run_container_andnot(const run_container_t *src_1,\n                          const
      run_container_t *src_2, run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - vout
    - cont
    - base
    argTypes:
    - void*
    - run_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 14929
      start: 14913
    functionDepth: 0
    functionLinenumber: 14913
    functionLinenumberEnd: 14929
    functionName: roaring::internal::run_container_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED run_container_to_uint32_array(void *vout, const run_container_t
      *cont,\n                                  uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cont
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 14941
      start: 14935
    functionDepth: 0
    functionLinenumber: 14935
    functionLinenumberEnd: 14941
    functionName: roaring::internal::run_container_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void run_container_printf(const run_container_t *cont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14953,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14954,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14959,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - cont
    - base
    argTypes:
    - run_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 14961
      start: 14947
    functionDepth: 0
    functionLinenumber: 14947
    functionLinenumberEnd: 14961
    functionName: roaring::internal::run_container_printf_as_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void run_container_printf_as_uint32_array(const run_container_t *cont,\n
      \                                         uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14966,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14967,1
    - Dst: roaring::internal::run_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - container
    - buf
    argTypes:
    - run_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 14970
      start: 14964
    functionDepth: 0
    functionLinenumber: 14964
    functionLinenumberEnd: 14970
    functionName: roaring::internal::run_container_write
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - memcpy
    - roaring::internal::run_container_size_in_bytes
    linkageType: ''
    returnType: int32_t
    signature: int32_t run_container_write(const run_container_t *container, char
      *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14976,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14979,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14981,1
    - Dst: roaring::internal::run_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14984,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cardinality
    - container
    - buf
    argTypes:
    - int32_t
    - run_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 14985
      start: 14972
    functionDepth: 0
    functionLinenumber: 14972
    functionLinenumberEnd: 14985
    functionName: roaring::internal::run_container_read
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_grow
    - memcpy
    - roaring::internal::run_container_size_in_bytes
    linkageType: ''
    returnType: int32_t
    signature: "int32_t run_container_read(int32_t cardinality, run_container_t *container,\n
      \                          const char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:14994,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - cont
    - base
    - iterator
    - ptr
    argTypes:
    - run_container_t*
    - uint32_t
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 14997
      start: 14987
    functionDepth: 0
    functionLinenumber: 14987
    functionLinenumberEnd: 14997
    functionName: roaring::internal::run_container_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: "bool run_container_iterate(const run_container_t *cont, uint32_t base,\n
      \                          roaring_iterator iterator, void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15007,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - cont
    - base
    - iterator
    - high_bits
    - ptr
    argTypes:
    - run_container_t*
    - uint32_t
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 15011
      start: 14999
    functionDepth: 0
    functionLinenumber: 14999
    functionLinenumberEnd: 15011
    functionName: roaring::internal::run_container_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: "bool run_container_iterate64(const run_container_t *cont, uint32_t
      base,\n                             roaring_iterator64 iterator, uint64_t high_bits,\n
      \                            void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 15039
      start: 15013
    functionDepth: 0
    functionLinenumber: 15013
    functionLinenumberEnd: 15039
    functionName: roaring::internal::run_container_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool run_container_is_subset(const run_container_t *container1,\n
      \                            const run_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15055,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15069,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15072,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15081,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15084,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - src
    - start
    - length
    argTypes:
    - run_container_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 15087
      start: 15046
    functionDepth: 0
    functionLinenumber: 15046
    functionLinenumberEnd: 15087
    functionName: roaring::internal::run_container_smart_append_exclusive
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 4
    functionsReached:
    - MAKE_RLE16
    linkageType: ''
    returnType: void
    signature: "void run_container_smart_append_exclusive(run_container_t *src,\n
      \                                         const uint16_t start,\n                                          const
      uint16_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - container
    - start_rank
    - rank
    - element
    argTypes:
    - run_container_t*
    - uint32_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 15102
      start: 15089
    functionDepth: 0
    functionLinenumber: 15089
    functionLinenumberEnd: 15102
    functionName: roaring::internal::run_container_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool run_container_select(const run_container_t *container,\n                          uint32_t
      *start_rank, uint32_t rank,\n                          uint32_t *element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - container
    - x
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 15119
      start: 15104
    functionDepth: 0
    functionLinenumber: 15104
    functionLinenumberEnd: 15119
    functionName: roaring::internal::run_container_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int run_container_rank(const run_container_t *container, uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15135,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15137,1
    - Dst: _mm256_srli_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15138,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15139,1
    - Dst: _mm256_storeu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 15152
      start: 15126
    functionDepth: 0
    functionLinenumber: 15126
    functionLinenumberEnd: 15152
    functionName: roaring::internal::_avx2_run_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _mm256_add_epi32
    - _mm256_srli_epi32
    - _mm256_lddqu_si256
    - _mm256_storeu_si256
    - _mm256_setzero_si256
    linkageType: ''
    returnType: int
    signature: int _avx2_run_container_cardinality(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 15168
      start: 15154
    functionDepth: 0
    functionLinenumber: 15154
    functionLinenumberEnd: 15168
    functionName: roaring::internal::_scalar_run_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CROARING_UNTARGET_REGION
    signature: CROARING_UNTARGET_REGION _scalar_run_container_cardinality(const run_container_t
      *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15171,1
    - Dst: roaring::internal::_avx2_run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15172,1
    - Dst: roaring::internal::_scalar_run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 15176
      start: 15170
    functionDepth: 1
    functionLinenumber: 15170
    functionLinenumberEnd: 15176
    functionName: roaring::internal::run_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 8
    functionsReached:
    - roaring::internal::_scalar_run_container_cardinality
    - roaring::internal::_avx2_run_container_cardinality
    - croaring_avx2
    linkageType: ''
    returnType: int
    signature: int run_container_cardinality(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 15191
      start: 15180
    functionDepth: 0
    functionLinenumber: 15180
    functionLinenumberEnd: 15191
    functionName: roaring::internal::run_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int run_container_cardinality(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15211,1
    - Dst: __mingw_aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15213,1
    - Dst: posix_memalign
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 15220
      start: 15208
    functionDepth: 0
    functionLinenumber: 15208
    functionLinenumberEnd: 15220
    functionName: roaring_bitmap_aligned_malloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _aligned_malloc
    - posix_memalign
    - __mingw_aligned_malloc
    linkageType: ''
    returnType: void
    signature: void *roaring_bitmap_aligned_malloc(size_t alignment, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15224,1
    - Dst: __mingw_aligned_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15226,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memblock
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 15230
      start: 15222
    functionDepth: 0
    functionLinenumber: 15222
    functionLinenumberEnd: 15230
    functionName: roaring_bitmap_aligned_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - _aligned_free
    - __mingw_aligned_free
    - free
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_aligned_free(void *memblock)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memory_hook
    argTypes:
    - roaring_memory_t
    constantsTouched: []
    func_position:
      end: 15243
      start: 15241
    functionDepth: 0
    functionLinenumber: 15241
    functionLinenumberEnd: 15243
    functionName: roaring_init_memory_hook
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void roaring_init_memory_hook(roaring_memory_t memory_hook)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 15247
      start: 15245
    functionDepth: 0
    functionLinenumber: 15245
    functionLinenumberEnd: 15247
    functionName: roaring_malloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 7
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void * roaring_malloc(size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - new_sz
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 15251
      start: 15249
    functionDepth: 0
    functionLinenumber: 15249
    functionLinenumberEnd: 15251
    functionName: roaring_realloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 4
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void * roaring_realloc(void* p, size_t new_sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n_elements
    - element_size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 15255
      start: 15253
    functionDepth: 0
    functionLinenumber: 15253
    functionLinenumberEnd: 15255
    functionName: roaring_calloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void * roaring_calloc(size_t n_elements, size_t element_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 15259
      start: 15257
    functionDepth: 0
    functionLinenumber: 15257
    functionLinenumberEnd: 15259
    functionName: roaring_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 13
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void roaring_free(void* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 15263
      start: 15261
    functionDepth: 0
    functionLinenumber: 15261
    functionLinenumberEnd: 15263
    functionName: roaring_aligned_malloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - aligned_malloc
    linkageType: ''
    returnType: void
    signature: void * roaring_aligned_malloc(size_t alignment, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aligned_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 15267
      start: 15265
    functionDepth: 0
    functionLinenumber: 15265
    functionLinenumberEnd: 15267
    functionName: roaring_aligned_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - aligned_free
    linkageType: ''
    returnType: void
    signature: void roaring_aligned_free(void* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 15293
      start: 15291
    functionDepth: 0
    functionLinenumber: 15291
    functionLinenumberEnd: 15293
    functionName: roaring::api::is_cow
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_cow(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 15296
      start: 15294
    functionDepth: 0
    functionLinenumber: 15294
    functionLinenumberEnd: 15296
    functionName: roaring::api::is_frozen
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_frozen(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15312,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15313,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15315,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15318,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15319,1
    - Dst: array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15326,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15327,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - r
    - val
    - type
    - index
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    - uint8_t*
    - int*
    constantsTouched: []
    func_position:
      end: 15334
      start: 15303
    functionDepth: 0
    functionLinenumber: 15303
    functionLinenumberEnd: 15334
    functionName: roaring::api::containerptr_roaring_bitmap_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - container_add
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - ra_insert_new_key_value_at
    - array_container_create
    - ra_set_container_at_index
    linkageType: ''
    returnType: container_t
    signature: "container_t *containerptr_roaring_bitmap_add(\n    roaring_bitmap_t
      *r, uint32_t val,\n    uint8_t *type, int *index\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15338,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cap
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15348
      start: 15336
    functionDepth: 0
    functionLinenumber: 15336
    functionLinenumberEnd: 15348
    functionName: roaring::api::roaring_bitmap_create_with_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - roaring_free
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_create_with_capacity(uint32_t cap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_init_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - cap
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15352
      start: 15350
    functionDepth: 0
    functionLinenumber: 15350
    functionLinenumberEnd: 15352
    functionName: roaring::api::roaring_bitmap_init_with_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_init_with_capacity
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_init_with_capacity(roaring_bitmap_t *r, uint32_t
      cap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::containerptr_roaring_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15361,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15371,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15375,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - context
    - val
    argTypes:
    - roaring_bitmap_t*
    - roaring_bulk_context_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15382
      start: 15354
    functionDepth: 0
    functionLinenumber: 15354
    functionLinenumberEnd: 15382
    functionName: roaring::api::add_bulk_impl
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::containerptr_roaring_bitmap_add
    - container_free
    - container_add
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: "void add_bulk_impl(roaring_bitmap_t *r,\n                                 roaring_bulk_context_t
      *context,\n                                 uint32_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::containerptr_roaring_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15399,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15403,1
    - Dst: roaring::api::add_bulk_impl
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - r
    - n_args
    - vals
    argTypes:
    - roaring_bitmap_t*
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 15406
      start: 15384
    functionDepth: 0
    functionLinenumber: 15384
    functionLinenumberEnd: 15406
    functionName: roaring::api::roaring_bitmap_add_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::containerptr_roaring_bitmap_add
    - roaring::api::add_bulk_impl
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_add_many(roaring_bitmap_t *r, size_t n_args,\n
      \                            const uint32_t *vals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::add_bulk_impl
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - context
    - val
    argTypes:
    - roaring_bitmap_t*
    - roaring_bulk_context_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15411
      start: 15408
    functionDepth: 0
    functionLinenumber: 15408
    functionLinenumberEnd: 15411
    functionName: roaring::api::roaring_bitmap_add_bulk
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::add_bulk_impl
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_add_bulk(roaring_bitmap_t *r,\n                             roaring_bulk_context_t
      *context, uint32_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_size
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15424,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15428,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15431,1
    - Dst: container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - r
    - context
    - val
    argTypes:
    - roaring_bitmap_t*
    - roaring_bulk_context_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15439
      start: 15413
    functionDepth: 0
    functionLinenumber: 15413
    functionLinenumberEnd: 15439
    functionName: roaring::api::roaring_bitmap_contains_bulk
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - ra_get_key_at_index
    - container_contains
    - ra_get_size
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_contains_bulk(const roaring_bitmap_t *r,\n                                  roaring_bulk_context_t
      *context,\n                                  uint32_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15442,1
    - Dst: roaring::api::roaring_bitmap_add_many
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n_args
    - vals
    argTypes:
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 15445
      start: 15441
    functionDepth: 0
    functionLinenumber: 15441
    functionLinenumberEnd: 15445
    functionName: roaring::api::roaring_bitmap_of_ptr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_add_many
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_of_ptr(size_t n_args, const uint32_t
      *vals)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15450,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15454,1
    - Dst: va_start
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15455,1
    - Dst: roaring::api::roaring_bitmap_add_bulk
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15458,1
    - Dst: va_end
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - n_args
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 15462
      start: 15447
    functionDepth: 0
    functionLinenumber: 15447
    functionLinenumberEnd: 15462
    functionName: roaring::api::roaring_bitmap_of
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memset
    - va_start
    - va_end
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_add_bulk
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_of(size_t n_args, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15466
      start: 15464
    functionDepth: 0
    functionLinenumber: 15464
    functionLinenumberEnd: 15466
    functionName: roaring::api::minimum_uint32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t minimum_uint32(uint32_t a, uint32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 15470
      start: 15468
    functionDepth: 0
    functionLinenumber: 15468
    functionLinenumberEnd: 15470
    functionName: roaring::api::minimum_uint64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t minimum_uint64(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15474,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15475,1
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15479,1
    - Dst: roaring::api::roaring_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15482,1
    - Dst: container_from_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15492,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15494,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - min
    - max
    - step
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15500
      start: 15472
    functionDepth: 0
    functionLinenumber: 15472
    functionLinenumberEnd: 15500
    functionName: roaring::api::roaring_bitmap_from_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_append
    - container_from_range
    - UINT64_C
    - roaring::api::roaring_bitmap_add
    - roaring::api::roaring_bitmap_create
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_from_range(uint64_t min, uint64_t
      max,\n                                            uint32_t step)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_shift_tail
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15519,1
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15532,1
    - Dst: container_add_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15533,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15538,1
    - Dst: container_from_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15543,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15546,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15550
      start: 15502
    functionDepth: 0
    functionLinenumber: 15502
    functionLinenumberEnd: 15550
    functionName: roaring::api::roaring_bitmap_add_range_closed
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_replace_key_and_container_at_index
    - container_from_range
    - ra_unshare_container_at_index
    - ra_shift_tail
    - container_add_range
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_add_range_closed(roaring_bitmap_t *r, uint32_t
      min, uint32_t max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15567,1
    - Dst: container_remove_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15570,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15575,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15579,1
    - Dst: ra_shift_tail
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15586,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15588
      start: 15552
    functionDepth: 0
    functionLinenumber: 15552
    functionLinenumberEnd: 15588
    functionName: roaring::api::roaring_bitmap_remove_range_closed
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_replace_key_and_container_at_index
    - ra_unshare_container_at_index
    - ra_shift_tail
    - container_remove_range
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_remove_range_closed(roaring_bitmap_t *r, uint32_t
      min, uint32_t max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15597,1
    - Dst: container_printf_as_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15599,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15603,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 15607
      start: 15594
    functionDepth: 0
    functionLinenumber: 15594
    functionLinenumberEnd: 15607
    functionName: roaring::api::roaring_bitmap_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_printf_as_uint32_array
    - printf
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_printf(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15612,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15614,1
    - Dst: get_full_container_name
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15615,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15616,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15618,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15620,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15624,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 15628
      start: 15609
    functionDepth: 0
    functionLinenumber: 15609
    functionLinenumberEnd: 15628
    functionName: roaring::api::roaring_bitmap_printf_describe
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - CAST_shared
    - get_full_container_name
    - container_get_cardinality
    - printf
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_printf_describe(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - value
    - param
    argTypes:
    - uint32_t
    - void*
    constantsTouched: []
    func_position:
      end: 15643
      start: 15637
    functionDepth: 0
    functionLinenumber: 15637
    functionLinenumberEnd: 15643
    functionName: roaring::api::min_max_sum_fnc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool min_max_sum_fnc(uint32_t value, void *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15653,1
    - Dst: roaring::api::roaring_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15655,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15657,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15658,1
    - Dst: roaring::api::roaring_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15660,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15689,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - r
    - stat
    argTypes:
    - roaring_bitmap_t*
    - roaring_statistics_t*
    constantsTouched: []
    func_position:
      end: 15693
      start: 15649
    functionDepth: 0
    functionLinenumber: 15649
    functionLinenumberEnd: 15693
    functionName: roaring::api::roaring_bitmap_statistics
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memset
    - UINT32_C
    - roaring::api::roaring_iterate
    - roaring::api::roaring_bitmap_get_cardinality
    - assert
    - __builtin_unreachable
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_statistics(const roaring_bitmap_t *r,\n                               roaring_statistics_t
      *stat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15697,1
    - Dst: ra_init_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15701,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15704,1
    - Dst: ra_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15707,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15708,1
    - Dst: roaring::api::roaring_bitmap_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15710,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15713,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15713,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 15715
      start: 15695
    functionDepth: 0
    functionLinenumber: 15695
    functionLinenumberEnd: 15715
    functionName: roaring::api::roaring_bitmap_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - ra_init_with_capacity
    - ra_overwrite
    - roaring::api::roaring_bitmap_free
    - roaring_free
    - roaring_malloc
    - roaring::api::roaring_bitmap_set_copy_on_write
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_copy(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15719,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15719,1
    - Dst: ra_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15720,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 15722
      start: 15717
    functionDepth: 0
    functionLinenumber: 15717
    functionLinenumberEnd: 15722
    functionName: roaring::api::roaring_bitmap_overwrite
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - roaring::api::roaring_bitmap_set_copy_on_write
    - ra_overwrite
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_overwrite(roaring_bitmap_t *dest,\n                                     const
      roaring_bitmap_t *src)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::is_frozen
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15725,1
    - Dst: ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15726,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 15729
      start: 15724
    functionDepth: 0
    functionLinenumber: 15724
    functionLinenumberEnd: 15729
    functionName: roaring::api::roaring_bitmap_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - ra_clear
    - roaring_free
    - roaring::api::is_frozen
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_free(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_reset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 15733
      start: 15731
    functionDepth: 0
    functionLinenumber: 15731
    functionLinenumberEnd: 15733
    functionName: roaring::api::roaring_bitmap_clear
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_reset
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_clear(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15742,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15744,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15747,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15749,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15750,1
    - Dst: array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15754,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15755,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15761
      start: 15735
    functionDepth: 0
    functionLinenumber: 15735
    functionLinenumberEnd: 15761
    functionName: roaring::api::roaring_bitmap_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - container_free
    - container_add
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - ra_insert_new_key_value_at
    - array_container_create
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_add(roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15769,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15771,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15778,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15780,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15781,1
    - Dst: array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15791,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15792,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15801
      start: 15763
    functionDepth: 0
    functionLinenumber: 15763
    functionLinenumberEnd: 15801
    functionName: roaring::api::roaring_bitmap_add_checked
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - container_add
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - ra_insert_new_key_value_at
    - array_container_create
    - ra_set_container_at_index
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_add_checked(roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15808,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15810,1
    - Dst: container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15813,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15815,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15816,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15819,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15820,1
    - Dst: ra_remove_at_index_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15826
      start: 15803
    functionDepth: 0
    functionLinenumber: 15803
    functionLinenumberEnd: 15826
    functionName: roaring::api::roaring_bitmap_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - container_get_cardinality
    - container_remove
    - ra_remove_at_index_and_free
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_remove(roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15834,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15836,1
    - Dst: container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15843,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15845,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15846,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15854,1
    - Dst: ra_remove_at_index_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 15863
      start: 15828
    functionDepth: 0
    functionLinenumber: 15828
    functionLinenumberEnd: 15863
    functionName: roaring::api::roaring_bitmap_remove_checked
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - container_remove
    - ra_remove_at_index_and_free
    - ra_set_container_at_index
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_remove_checked(roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15874,1
    - Dst: container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15879,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15884,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15886,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15890,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15891,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15892,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - r
    - n_args
    - vals
    argTypes:
    - roaring_bitmap_t*
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 15897
      start: 15865
    functionDepth: 0
    functionLinenumber: 15865
    functionLinenumberEnd: 15897
    functionName: roaring::api::roaring_bitmap_remove_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_replace_key_and_container_at_index
    - ra_get_index
    - ra_remove_at_index
    - container_remove
    - container_nonzero_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_remove_many(roaring_bitmap_t *r, size_t n_args,\n
      \                               const uint32_t *vals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15906,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15907,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15907,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15907,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15917,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15919,1
    - Dst: container_and
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15921,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15923,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15924,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15926,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15931,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15933,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 15937
      start: 15900
    functionDepth: 0
    functionLinenumber: 15900
    functionLinenumberEnd: 15937
    functionName: roaring::api::roaring_bitmap_and
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - ra_append
    - ra_get_container_at_index
    - container_and
    - ra_advance_until
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_and(const roaring_bitmap_t *x1,\n
      \                                    const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15945,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15948,1
    - Dst: roaring::api::roaring_bitmap_lazy_or
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15951,1
    - Dst: roaring::api::roaring_bitmap_lazy_or_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15953,1
    - Dst: roaring::api::roaring_bitmap_repair_after_lazy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15955,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - number
    - x
    argTypes:
    - size_t
    - roaring_bitmap_t**
    constantsTouched: []
    func_position:
      end: 15957
      start: 15942
    functionDepth: 0
    functionLinenumber: 15942
    functionLinenumberEnd: 15957
    functionName: roaring::api::roaring_bitmap_or_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_copy
    - roaring::api::roaring_bitmap_repair_after_lazy
    - roaring::api::roaring_bitmap_lazy_or
    - roaring::api::roaring_bitmap_lazy_or_inplace
    - roaring::api::roaring_bitmap_create
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_or_many(size_t number,\n                                         const
      roaring_bitmap_t **x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15965,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15968,1
    - Dst: roaring::api::roaring_bitmap_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15970,1
    - Dst: roaring::api::roaring_bitmap_lazy_xor_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15972,1
    - Dst: roaring::api::roaring_bitmap_repair_after_lazy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - number
    - x
    argTypes:
    - size_t
    - roaring_bitmap_t**
    constantsTouched: []
    func_position:
      end: 15976
      start: 15962
    functionDepth: 0
    functionLinenumber: 15962
    functionLinenumberEnd: 15976
    functionName: roaring::api::roaring_bitmap_xor_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_lazy_xor
    - roaring::api::roaring_bitmap_copy
    - roaring::api::roaring_bitmap_repair_after_lazy
    - roaring::api::roaring_bitmap_lazy_xor_inplace
    - roaring::api::roaring_bitmap_create
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_xor_many(size_t number,\n                                          const
      roaring_bitmap_t **x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15994,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:15996,1
    - Dst: container_and
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16006,1
    - Dst: container_iand
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16007,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16011,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16013,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16014,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16019,1
    - Dst: ra_advance_until_freeing
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16024,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16026,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16033,1
    - Dst: ra_downsize
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16039,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16040
      start: 15979
    functionDepth: 0
    functionLinenumber: 15979
    functionLinenumberEnd: 16040
    functionName: roaring::api::roaring_bitmap_and_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_replace_key_and_container_at_index
    - ra_downsize
    - ra_get_container_at_index
    - container_and
    - ra_advance_until_freeing
    - ra_advance_until
    - container_iand
    - container_nonzero_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_and_inplace(roaring_bitmap_t *x1,\n                                const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16048,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16051,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16054,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16055,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16055,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16055,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16062,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16064,1
    - Dst: container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16066,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16071,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16076,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16077,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16080,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16083,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16083,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16084,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16085,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16088,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16091,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16094,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16097,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16097,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16098,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16099,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16102,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16105,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16109,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16111,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16113,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16115,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16118
      start: 16042
    functionDepth: 0
    functionLinenumber: 16042
    functionLinenumberEnd: 16118
    functionName: roaring::api::roaring_bitmap_or
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_set_container_at_index
    - roaring::api::is_cow
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - container_or
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_set_copy_on_write
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_or(const roaring_bitmap_t *x1,\n
      \                                   const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16130,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16139,1
    - Dst: container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16141,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16142,1
    - Dst: container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16146,1
    - Dst: container_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16147,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16151,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16153,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16160,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16161,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16166,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16169,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16171,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16171,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16172,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16173,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16178,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16184,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16188,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16189,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16191
      start: 16121
    functionDepth: 0
    functionLinenumber: 16121
    functionLinenumberEnd: 16191
    functionName: roaring::api::roaring_bitmap_or_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - container_is_full
    - get_copy_of_container
    - ra_get_container_at_index
    - ra_append_copy_range
    - ra_get_key_at_index
    - ra_insert_new_key_value_at
    - container_or
    - roaring::api::roaring_bitmap_overwrite
    - container_ior
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_or_inplace(roaring_bitmap_t *x1,\n                               const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16199,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16202,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16205,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16206,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16206,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16206,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16213,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16215,1
    - Dst: container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16217,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16219,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16220,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16222,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16228,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16229,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16232,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16234,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16234,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16235,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16236,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16239,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16242,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16245,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16247,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16247,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16248,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16249,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16252,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16255,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16259,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16261,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16263,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16265,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16268
      start: 16193
    functionDepth: 0
    functionLinenumber: 16193
    functionLinenumberEnd: 16268
    functionName: roaring::api::roaring_bitmap_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_set_container_at_index
    - roaring::api::is_cow
    - container_free
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - container_xor
    - ra_append
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_xor(const roaring_bitmap_t *x1,\n
      \                                    const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16274,1
    - Dst: roaring::api::roaring_bitmap_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16282,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16295,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16297,1
    - Dst: container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16308,1
    - Dst: shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16309,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16309,1
    - Dst: container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16312,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16315,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16316,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16320,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16321,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16328,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16329,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16334,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16337,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16339,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16339,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16340,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16341,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16345,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16351,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16355,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16356,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16358
      start: 16272
    functionDepth: 0
    functionLinenumber: 16272
    functionLinenumberEnd: 16358
    functionName: roaring::api::roaring_bitmap_xor_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - container_nonzero_cardinality
    - ra_get_container_at_index
    - container_xor
    - container_ixor
    - ra_remove_at_index
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - ra_insert_new_key_value_at
    - CAST_shared
    - roaring::api::roaring_bitmap_overwrite
    - assert
    - ra_set_container_at_index
    - shared_container_free
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_xor_inplace(roaring_bitmap_t *x1,\n                                const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16366,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16367,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16367,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16367,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16371,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16373,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16374,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16374,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16374,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16381,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16382,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16385,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16387,1
    - Dst: container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16389,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16392,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16393,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16395,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16404,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16406,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16412,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16417,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16419,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16422
      start: 16360
    functionDepth: 0
    functionLinenumber: 16360
    functionLinenumberEnd: 16422
    functionName: roaring::api::roaring_bitmap_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - container_andnot
    - ra_append_copy_range
    - ra_advance_until
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_andnot(const roaring_bitmap_t *x1,\n
      \                                       const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16428,1
    - Dst: roaring::api::roaring_bitmap_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16438,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16448,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16450,1
    - Dst: container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16461,1
    - Dst: shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16462,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16462,1
    - Dst: container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16465,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16468,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16469,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16473,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16480,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16481,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16485,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16488,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16495,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16498,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16500,1
    - Dst: ra_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16513,1
    - Dst: ra_downsize
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16519,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16520
      start: 16426
    functionDepth: 0
    functionLinenumber: 16426
    functionLinenumberEnd: 16520
    functionName: roaring::api::roaring_bitmap_andnot_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_clear
    - container_free
    - ra_replace_key_and_container_at_index
    - ra_downsize
    - container_nonzero_cardinality
    - ra_get_container_at_index
    - ra_get_key_at_index
    - container_andnot
    - CAST_shared
    - container_iandnot
    - assert
    - ra_copy_range
    - ra_advance_until
    - shared_container_free
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_andnot_inplace(roaring_bitmap_t *x1,\n                                   const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16529
      start: 16522
    functionDepth: 0
    functionLinenumber: 16522
    functionLinenumberEnd: 16529
    functionName: roaring::api::roaring_bitmap_get_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - container_get_cardinality
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t roaring_bitmap_get_cardinality(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16537,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16553,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16556,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16560,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16571,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16574,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - r
    - range_start
    - range_end
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 16583
      start: 16531
    functionDepth: 0
    functionLinenumber: 16531
    functionLinenumberEnd: 16583
    functionName: roaring::api::roaring_bitmap_range_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    - container_get_cardinality
    - container_rank
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_range_cardinality(const roaring_bitmap_t *r,\n
      \                                         uint64_t range_start,\n                                          uint64_t
      range_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16588
      start: 16586
    functionDepth: 0
    functionLinenumber: 16586
    functionLinenumberEnd: 16588
    functionName: roaring::api::roaring_bitmap_is_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_is_empty(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - ans
    argTypes:
    - roaring_bitmap_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 16592
      start: 16590
    functionDepth: 0
    functionLinenumber: 16590
    functionLinenumberEnd: 16592
    functionName: roaring::api::roaring_bitmap_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_to_uint32_array
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_to_uint32_array(const roaring_bitmap_t *r, uint32_t
      *ans)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_range_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - offset
    - limit
    - ans
    argTypes:
    - roaring_bitmap_t*
    - size_t
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 16598
      start: 16594
    functionDepth: 0
    functionLinenumber: 16594
    functionLinenumberEnd: 16598
    functionName: roaring::api::roaring_bitmap_range_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_range_uint32_array
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_range_uint32_array(const roaring_bitmap_t *r,\n
      \                                      size_t offset, size_t limit,\n                                       uint32_t
      *ans)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16609,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16611,1
    - Dst: convert_run_optimize
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16613,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16620
      start: 16605
    functionDepth: 0
    functionLinenumber: 16605
    functionLinenumberEnd: 16620
    functionName: roaring::api::roaring_bitmap_run_optimize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - convert_run_optimize
    - ra_set_container_at_index
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_run_optimize(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16626,1
    - Dst: container_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16628,1
    - Dst: ra_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16632
      start: 16622
    functionDepth: 0
    functionLinenumber: 16622
    functionLinenumberEnd: 16632
    functionName: roaring::api::roaring_bitmap_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - container_shrink_to_fit
    - ra_shrink_to_fit
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_shrink_to_fit(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16642,1
    - Dst: get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16644,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16647,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16647,1
    - Dst: convert_to_bitset_or_array_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16649,1
    - Dst: shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16651,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16651,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16652,1
    - Dst: convert_to_bitset_or_array_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16657,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16658,1
    - Dst: run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16659,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16659,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16666
      start: 16638
    functionDepth: 0
    functionLinenumber: 16638
    functionLinenumberEnd: 16666
    functionName: roaring::api::roaring_bitmap_remove_run_compression
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - run_container_free
    - CAST_shared
    - shared_container_free
    - convert_to_bitset_or_array_container
    - get_container_type
    - ra_set_container_at_index
    - CAST_run
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_remove_run_compression(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_portable_serialize
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16674,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16677,1
    - Dst: roaring::api::roaring_bitmap_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - roaring_bitmap_t*
    - char*
    constantsTouched: []
    func_position:
      end: 16682
      start: 16668
    functionDepth: 0
    functionLinenumber: 16668
    functionLinenumberEnd: 16682
    functionName: roaring::api::roaring_bitmap_serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::api::roaring_bitmap_portable_serialize
    - roaring::api::roaring_bitmap_to_uint32_array
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_serialize(const roaring_bitmap_t *r, char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16689
      start: 16684
    functionDepth: 0
    functionLinenumber: 16684
    functionLinenumberEnd: 16689
    functionName: roaring::api::roaring_bitmap_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_size_in_bytes(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16693
      start: 16691
    functionDepth: 0
    functionLinenumber: 16691
    functionLinenumberEnd: 16693
    functionName: roaring::api::roaring_bitmap_portable_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_portable_size_in_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_portable_size_in_bytes(const roaring_bitmap_t
      *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16698,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16704,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16705,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 16711
      start: 16696
    functionDepth: 0
    functionLinenumber: 16696
    functionLinenumberEnd: 16711
    functionName: roaring::api::roaring_bitmap_portable_deserialize_safe
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - assert
    - roaring_free
    - roaring::api::roaring_bitmap_set_copy_on_write
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_portable_deserialize_safe(const char
      *buf, size_t maxbytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_portable_deserialize_safe
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 16715
      start: 16713
    functionDepth: 0
    functionLinenumber: 16713
    functionLinenumberEnd: 16715
    functionName: roaring::api::roaring_bitmap_portable_deserialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_portable_deserialize_safe
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_portable_deserialize(const char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_portable_deserialize_size
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 16720
      start: 16718
    functionDepth: 0
    functionLinenumber: 16718
    functionLinenumberEnd: 16720
    functionName: roaring::api::roaring_bitmap_portable_deserialize_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_portable_deserialize_size
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_portable_deserialize_size(const char *buf, size_t
      maxbytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_portable_serialize
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - roaring_bitmap_t*
    - char*
    constantsTouched: []
    func_position:
      end: 16726
      start: 16723
    functionDepth: 0
    functionLinenumber: 16723
    functionLinenumberEnd: 16726
    functionName: roaring::api::roaring_bitmap_portable_serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - ra_portable_serialize
    linkageType: ''
    returnType: size_t
    signature: "size_t roaring_bitmap_portable_serialize(const roaring_bitmap_t *r,\n
      \                                        char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16733,1
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16736,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16742,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16746,1
    - Dst: roaring::api::roaring_bitmap_add_bulk
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16747,1
    - Dst: roaring::api::roaring_bitmap_portable_deserialize
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16751,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 16754
      start: 16728
    functionDepth: 0
    functionLinenumber: 16728
    functionLinenumberEnd: 16754
    functionName: roaring::api::roaring_bitmap_deserialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memset
    - roaring::api::roaring_bitmap_portable_deserialize
    - memcpy
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_add_bulk
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_deserialize(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - iterator
    - ptr
    argTypes:
    - roaring_bitmap_t*
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 16767
      start: 16756
    functionDepth: 0
    functionLinenumber: 16756
    functionLinenumberEnd: 16767
    functionName: roaring::api::roaring_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - container_iterate
    linkageType: ''
    returnType: bool
    signature: "bool roaring_iterate(const roaring_bitmap_t *r, roaring_iterator iterator,\n
      \                    void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_iterate64
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - iterator
    - high_bits
    - ptr
    argTypes:
    - roaring_bitmap_t*
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 16781
      start: 16769
    functionDepth: 0
    functionLinenumber: 16769
    functionLinenumberEnd: 16781
    functionName: roaring::api::roaring_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_iterate64
    linkageType: ''
    returnType: bool
    signature: "bool roaring_iterate64(const roaring_bitmap_t *r, roaring_iterator64
      iterator,\n                       uint64_t high_bits, void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - newit
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 16815
      start: 16789
    functionDepth: 0
    functionLinenumber: 16789
    functionLinenumberEnd: 16815
    functionName: roaring::api::iter_new_container_partial_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_unwrap_shared
    linkageType: ''
    returnType: bool
    signature: bool iter_new_container_partial_init(roaring_uint32_iterator_t *newit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::iter_new_container_partial_init
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16818,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16823,1
    - Dst: __builtin_ctzll
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16831,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16836,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16841,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16847,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - newit
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 16850
      start: 16817
    functionDepth: 1
    functionLinenumber: 16817
    functionLinenumberEnd: 16850
    functionName: roaring::api::loadfirstvalue
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - __builtin_ctzll
    - assert
    - roaring::api::iter_new_container_partial_init
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: bool loadfirstvalue(roaring_uint32_iterator_t *newit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::iter_new_container_partial_init
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16853,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - newit
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 16887
      start: 16852
    functionDepth: 0
    functionLinenumber: 16852
    functionLinenumberEnd: 16887
    functionName: roaring::api::loadlastvalue
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - assert
    - roaring::api::iter_new_container_partial_init
    linkageType: ''
    returnType: bool
    signature: bool loadlastvalue(roaring_uint32_iterator_t* newit)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::iter_new_container_partial_init
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16892,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16897,1
    - Dst: bitset_container_index_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16899,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16904,1
    - Dst: array_container_index_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16906,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16912,1
    - Dst: run_container_index_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16913,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16923,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - newit
    - val
    argTypes:
    - roaring_uint32_iterator_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 16927
      start: 16890
    functionDepth: 0
    functionLinenumber: 16890
    functionLinenumberEnd: 16927
    functionName: roaring::api::loadfirstvalue_largeorequal
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - run_container_index_equalorlarger
    - array_container_index_equalorlarger
    - bitset_container_index_equalorlarger
    - roaring::api::iter_new_container_partial_init
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: bool loadfirstvalue_largeorequal(roaring_uint32_iterator_t *newit,
      uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - newit
    argTypes:
    - roaring_bitmap_t*
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 16934
      start: 16929
    functionDepth: 0
    functionLinenumber: 16929
    functionLinenumberEnd: 16934
    functionName: roaring::api::roaring_init_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::loadfirstvalue
    linkageType: ''
    returnType: void
    signature: "void roaring_init_iterator(const roaring_bitmap_t *r,\n                           roaring_uint32_iterator_t
      *newit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadlastvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - newit
    argTypes:
    - roaring_bitmap_t*
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 16941
      start: 16936
    functionDepth: 0
    functionLinenumber: 16936
    functionLinenumberEnd: 16941
    functionName: roaring::api::roaring_init_iterator_last
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::loadlastvalue
    linkageType: ''
    returnType: void
    signature: "void roaring_init_iterator_last(const roaring_bitmap_t *r,\n                                roaring_uint32_iterator_t
      *newit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16945,1
    - Dst: roaring::api::roaring_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 16949
      start: 16943
    functionDepth: 0
    functionLinenumber: 16943
    functionLinenumberEnd: 16949
    functionName: roaring::api::roaring_create_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - roaring::api::roaring_init_iterator
    linkageType: ''
    returnType: roaring_uint32_iterator_t
    signature: roaring_uint32_iterator_t *roaring_create_iterator(const roaring_bitmap_t
      *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16954,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 16957
      start: 16951
    functionDepth: 0
    functionLinenumber: 16951
    functionLinenumberEnd: 16957
    functionName: roaring::api::roaring_copy_uint32_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - memcpy
    linkageType: ''
    returnType: roaring_uint32_iterator_t
    signature: "roaring_uint32_iterator_t *roaring_copy_uint32_iterator(\n    const
      roaring_uint32_iterator_t *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadfirstvalue_largeorequal
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16969,1
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - it
    - val
    argTypes:
    - roaring_uint32_iterator_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 16978
      start: 16959
    functionDepth: 0
    functionLinenumber: 16959
    functionLinenumberEnd: 16978
    functionName: roaring::api::roaring_move_uint32_iterator_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::loadfirstvalue_largeorequal
    - roaring::api::loadfirstvalue
    linkageType: ''
    returnType: bool
    signature: bool roaring_move_uint32_iterator_equalorlarger(roaring_uint32_iterator_t
      *it, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16987,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:16992,1
    - Dst: __builtin_ctzll
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17007,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17014,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17028,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17044,1
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17049,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 17050
      start: 16981
    functionDepth: 1
    functionLinenumber: 16981
    functionLinenumberEnd: 17050
    functionName: roaring::api::roaring_advance_uint32_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - __builtin_ctzll
    - roaring::api::loadfirstvalue
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: bool roaring_advance_uint32_iterator(roaring_uint32_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadlastvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17058,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17107,1
    - Dst: roaring::api::loadlastvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17112,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 17113
      start: 17052
    functionDepth: 0
    functionLinenumber: 17052
    functionLinenumberEnd: 17113
    functionName: roaring::api::roaring_previous_uint32_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::loadlastvalue
    - assert
    linkageType: ''
    returnType: bool
    signature: bool roaring_previous_uint32_iterator(roaring_uint32_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17127,1
    - Dst: __builtin_ctzll
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17132,1
    - Dst: __builtin_ctzll
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17144,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17149,1
    - Dst: roaring::api::minimum_uint32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17150,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17163,1
    - Dst: roaring::api::minimum_uint32
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17167,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17186,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17189,1
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17193,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 3
    argNames:
    - it
    - buf
    - count
    argTypes:
    - roaring_uint32_iterator_t*
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 17196
      start: 17115
    functionDepth: 1
    functionLinenumber: 17115
    functionLinenumberEnd: 17196
    functionName: roaring::api::roaring_read_uint32_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::api::minimum_uint32
    - __builtin_ctzll
    - roaring::api::loadfirstvalue
    - assert
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t roaring_read_uint32_iterator(roaring_uint32_iterator_t *it,
      uint32_t* buf, uint32_t count)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 17200
      start: 17200
    functionDepth: 0
    functionLinenumber: 17200
    functionLinenumberEnd: 17200
    functionName: roaring::api::roaring_free_uint32_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void roaring_free_uint32_iterator(roaring_uint32_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 17229
      start: 17206
    functionDepth: 0
    functionLinenumber: 17206
    functionLinenumberEnd: 17229
    functionName: roaring::api::roaring_bitmap_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_equals(const roaring_bitmap_t *r1,\n                           const
      roaring_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17247,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17248,1
    - Dst: container_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17249,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 17263
      start: 17231
    functionDepth: 0
    functionLinenumber: 17231
    functionLinenumberEnd: 17263
    functionName: roaring::api::roaring_bitmap_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - ra_advance_until
    - container_is_subset
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_is_subset(const roaring_bitmap_t *r1,\n                              const
      roaring_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17274,1
    - Dst: container_not_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17276,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17279,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17280,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17283,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17286,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ans_arr
    - x1_arr
    - hb
    - lb_start
    - lb_end
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 17291
      start: 17265
    functionDepth: 0
    functionLinenumber: 17265
    functionLinenumberEnd: 17291
    functionName: roaring::api::insert_flipped_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_get_container_at_index
    - container_get_cardinality
    - ra_insert_new_key_value_at
    - container_not_range
    - container_range_of_ones
    linkageType: ''
    returnType: void
    signature: "void insert_flipped_container(roaring_array_t *ans_arr,\n                                     const
      roaring_array_t *x1_arr, uint16_t hb,\n                                     uint16_t
      lb_start, uint16_t lb_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17300,1
    - Dst: container_inot_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17301,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17305,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17306,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17308,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17309,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17313,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - x1_arr
    - hb
    - lb_start
    - lb_end
    argTypes:
    - roaring_array_t*
    - uint16_t
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 17318
      start: 17293
    functionDepth: 0
    functionLinenumber: 17293
    functionLinenumberEnd: 17318
    functionName: roaring::api::inplace_flip_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - container_inot_range
    - ra_get_container_at_index
    - container_get_cardinality
    - ra_remove_at_index
    - ra_insert_new_key_value_at
    - container_range_of_ones
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: "void inplace_flip_container(roaring_array_t *x1_arr, uint16_t hb,\n
      \                                  uint16_t lb_start, uint16_t lb_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17329,1
    - Dst: container_not
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17331,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17332,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17333,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17336,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17339,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ans_arr
    - x1_arr
    - hb
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 17343
      start: 17320
    functionDepth: 0
    functionLinenumber: 17320
    functionLinenumberEnd: 17343
    functionName: roaring::api::insert_fully_flipped_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_get_container_at_index
    - container_get_cardinality
    - ra_insert_new_key_value_at
    - container_range_of_ones
    - container_not
    linkageType: ''
    returnType: void
    signature: "void insert_fully_flipped_container(roaring_array_t *ans_arr,\n                                           const
      roaring_array_t *x1_arr,\n                                           uint16_t
      hb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17351,1
    - Dst: container_inot
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17353,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17355,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17356,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17358,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17359,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17363,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - x1_arr
    - hb
    argTypes:
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 17367
      start: 17345
    functionDepth: 0
    functionLinenumber: 17345
    functionLinenumberEnd: 17367
    functionName: roaring::api::inplace_fully_flip_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - container_inot
    - ra_get_container_at_index
    - container_get_cardinality
    - ra_remove_at_index
    - ra_insert_new_key_value_at
    - container_range_of_ones
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: void inplace_fully_flip_container(roaring_array_t *x1_arr, uint16_t
      hb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17373,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17375,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17376,1
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17379,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17380,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17380,1
    - Dst: ra_append_copies_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17387,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17388,1
    - Dst: roaring::api::insert_flipped_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17390,1
    - Dst: roaring::api::insert_flipped_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17397,1
    - Dst: roaring::api::insert_fully_flipped_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17406,1
    - Dst: roaring::api::insert_flipped_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17412,1
    - Dst: ra_append_copies_after
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17418,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - x1
    - range_start
    - range_end
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 17421
      start: 17369
    functionDepth: 0
    functionLinenumber: 17369
    functionLinenumberEnd: 17421
    functionName: roaring::api::roaring_bitmap_flip
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - roaring::api::roaring_bitmap_copy
    - UINT64_C
    - roaring::api::insert_fully_flipped_container
    - ra_append_copies_until
    - roaring::api::insert_flipped_container
    - ra_append_copies_after
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_set_copy_on_write
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_flip(const roaring_bitmap_t *x1,\n
      \                                     uint64_t range_start,\n                                      uint64_t
      range_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17428,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17429,1
    - Dst: roaring::api::inplace_flip_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17438,1
    - Dst: roaring::api::inplace_flip_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17444,1
    - Dst: roaring::api::inplace_fully_flip_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17452,1
    - Dst: roaring::api::inplace_flip_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17456,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - x1
    - range_start
    - range_end
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 17461
      start: 17423
    functionDepth: 0
    functionLinenumber: 17423
    functionLinenumberEnd: 17461
    functionName: roaring::api::roaring_bitmap_flip_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    - roaring::api::inplace_flip_container
    - roaring::api::inplace_fully_flip_container
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_flip_inplace(roaring_bitmap_t *x1, uint64_t range_start,\n
      \                                uint64_t range_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17465,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17467,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17477,1
    - Dst: container_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17478,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17480,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17485,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ra
    - k
    - c
    - t
    argTypes:
    - roaring_array_t*
    - int
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 17488
      start: 17463
    functionDepth: 0
    functionLinenumber: 17463
    functionLinenumberEnd: 17488
    functionName: roaring::api::offset_append_with_merge
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_append
    - ra_get_container_at_index
    - ra_get_key_at_index
    - container_ior
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: void offset_append_with_merge(roaring_array_t *ra, int k, container_t
      *c, uint8_t t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17506,1
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17512,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17513,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17513,1
    - Dst: ra_append_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17528,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17544,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17555,1
    - Dst: container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17556,1
    - Dst: container_add_offset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17558,1
    - Dst: roaring::api::offset_append_with_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17560,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17563,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - bm
    - offset
    argTypes:
    - roaring_bitmap_t*
    - int64_t
    constantsTouched: []
    func_position:
      end: 17568
      start: 17495
    functionDepth: 0
    functionLinenumber: 17495
    functionLinenumberEnd: 17568
    functionName: roaring::api::roaring_bitmap_add_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_append_copy
    - roaring::api::is_cow
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - roaring::api::offset_append_with_merge
    - container_add_offset
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_unwrap_shared
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_add_offset(const roaring_bitmap_t
      *bm,\n                                            int64_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17577,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17580,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17583,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17584,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17584,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17584,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17591,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17593,1
    - Dst: get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17597,1
    - Dst: get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17598,1
    - Dst: container_mutable_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17601,1
    - Dst: container_to_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17602,1
    - Dst: container_lazy_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17604,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17607,1
    - Dst: container_lazy_or
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17610,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17616,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17621,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17622,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17625,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17627,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17627,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17628,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17629,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17632,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17635,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17638,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17640,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17640,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17641,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17642,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17645,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17648,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17652,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17654,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17656,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17658,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - x1
    - x2
    - bitsetconversion
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    - bool
    constantsTouched: []
    func_position:
      end: 17661
      start: 17570
    functionDepth: 0
    functionLinenumber: 17570
    functionLinenumberEnd: 17661
    functionName: roaring::api::roaring_bitmap_lazy_or
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - container_lazy_or
    - ra_set_container_at_index
    - roaring::api::is_cow
    - container_to_bitset
    - container_free
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - container_mutable_unwrap_shared
    - get_container_type
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_lazy_ior
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_lazy_or(const roaring_bitmap_t *x1,\n
      \                                        const roaring_bitmap_t *x2,\n                                         const
      bool bitsetconversion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17673,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17682,1
    - Dst: container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17684,1
    - Dst: get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17686,1
    - Dst: get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17688,1
    - Dst: container_mutable_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17693,1
    - Dst: container_to_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17694,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17695,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17699,1
    - Dst: container_lazy_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17701,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17706,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17709,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17716,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17717,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17722,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17725,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17728,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17728,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17729,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17730,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17733,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17739,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17743,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17744,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - x1
    - x2
    - bitsetconversion
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    - bool
    constantsTouched: []
    func_position:
      end: 17746
      start: 17663
    functionDepth: 0
    functionLinenumber: 17663
    functionLinenumberEnd: 17746
    functionName: roaring::api::roaring_bitmap_lazy_or_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::api::is_cow
    - container_to_bitset
    - container_free
    - container_is_full
    - get_writable_copy_if_shared
    - ra_get_container_at_index
    - get_copy_of_container
    - ra_get_key_at_index
    - ra_append_copy_range
    - ra_insert_new_key_value_at
    - roaring::api::roaring_bitmap_overwrite
    - container_mutable_unwrap_shared
    - get_container_type
    - ra_set_container_at_index
    - container_lazy_ior
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_lazy_or_inplace(roaring_bitmap_t *x1,\n                                    const
      roaring_bitmap_t *x2,\n                                    const bool bitsetconversion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17754,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17757,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17760,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17761,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17761,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17761,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17768,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17770,1
    - Dst: container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17772,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17775,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17776,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17778,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17785,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17786,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17789,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17791,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17791,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17792,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17793,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17796,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17799,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17802,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17804,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17804,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17805,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17806,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17809,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17812,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17816,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17818,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17820,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17822,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 17825
      start: 17748
    functionDepth: 0
    functionLinenumber: 17748
    functionLinenumberEnd: 17825
    functionName: roaring::api::roaring_bitmap_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - ra_set_container_at_index
    - roaring::api::is_cow
    - container_free
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - roaring::api::roaring_bitmap_create_with_capacity
    - container_lazy_xor
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_lazy_xor(const roaring_bitmap_t *x1,\n
      \                                         const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17829,1
    - Dst: roaring::api::roaring_bitmap_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17837,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17846,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17848,1
    - Dst: container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17859,1
    - Dst: shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17860,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17860,1
    - Dst: container_lazy_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17863,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17866,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17867,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17871,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17872,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17878,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17879,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17884,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17887,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17890,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17890,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17891,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17892,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17895,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17901,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17905,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17906,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 17908
      start: 17827
    functionDepth: 0
    functionLinenumber: 17827
    functionLinenumberEnd: 17908
    functionName: roaring::api::roaring_bitmap_lazy_xor_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - container_nonzero_cardinality
    - ra_get_container_at_index
    - get_copy_of_container
    - ra_get_key_at_index
    - ra_remove_at_index
    - ra_append_copy_range
    - ra_insert_new_key_value_at
    - CAST_shared
    - roaring::api::roaring_bitmap_overwrite
    - assert
    - container_lazy_ixor
    - container_lazy_xor
    - ra_set_container_at_index
    - shared_container_free
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_lazy_xor_inplace(roaring_bitmap_t *x1,\n                                     const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_repair_after_lazy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 17921
      start: 17910
    functionDepth: 0
    functionLinenumber: 17910
    functionLinenumberEnd: 17921
    functionName: roaring::api::roaring_bitmap_repair_after_lazy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 2
    functionsReached:
    - container_repair_after_lazy
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_repair_after_lazy(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17936,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - bm
    - x
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 17947
      start: 17929
    functionDepth: 0
    functionLinenumber: 17929
    functionLinenumberEnd: 17947
    functionName: roaring::api::roaring_bitmap_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_get_cardinality
    - container_rank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t roaring_bitmap_rank(const roaring_bitmap_t *bm, uint32_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bm
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 17962
      start: 17953
    functionDepth: 0
    functionLinenumber: 17953
    functionLinenumberEnd: 17962
    functionName: roaring::api::roaring_bitmap_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t roaring_bitmap_minimum(const roaring_bitmap_t *bm)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bm
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 17980
      start: 17968
    functionDepth: 0
    functionLinenumber: 17968
    functionLinenumberEnd: 17980
    functionName: roaring::api::roaring_bitmap_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t roaring_bitmap_maximum(const roaring_bitmap_t *bm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_select
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:17994,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - bm
    - rank
    - element
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 18004
      start: 17982
    functionDepth: 0
    functionLinenumber: 17982
    functionLinenumberEnd: 18004
    functionName: roaring::api::roaring_bitmap_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_select
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_select(const roaring_bitmap_t *bm, uint32_t rank,\n
      \                          uint32_t *element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18019,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18021,1
    - Dst: container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18023,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18028,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18030,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 18034
      start: 18006
    functionDepth: 0
    functionLinenumber: 18006
    functionLinenumberEnd: 18034
    functionName: roaring::api::roaring_bitmap_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - container_intersect
    - ra_advance_until
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_intersect(const roaring_bitmap_t *x1,\n                                     const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18043,1
    - Dst: roaring::api::roaring_move_uint32_iterator_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - bm
    - x
    - y
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 18053
      start: 18036
    functionDepth: 0
    functionLinenumber: 18036
    functionLinenumberEnd: 18053
    functionName: roaring::api::roaring_bitmap_intersect_with_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_move_uint32_iterator_equalorlarger
    - roaring::api::roaring_init_iterator
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_intersect_with_range(const roaring_bitmap_t *bm,\n
      \                                        uint64_t x, uint64_t y)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18069,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18071,1
    - Dst: container_and_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18073,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18077,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18079,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 18083
      start: 18056
    functionDepth: 0
    functionLinenumber: 18056
    functionLinenumberEnd: 18083
    functionName: roaring::api::roaring_bitmap_and_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - container_and_cardinality
    - ra_advance_until
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_and_cardinality(const roaring_bitmap_t *x1,\n
      \                                       const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 18091
      start: 18085
    functionDepth: 0
    functionLinenumber: 18085
    functionLinenumberEnd: 18091
    functionName: roaring::api::roaring_bitmap_jaccard_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double roaring_bitmap_jaccard_index(const roaring_bitmap_t *x1,\n
      \                                   const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 18099
      start: 18093
    functionDepth: 0
    functionLinenumber: 18093
    functionLinenumberEnd: 18099
    functionName: roaring::api::roaring_bitmap_or_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_or_cardinality(const roaring_bitmap_t *x1,\n
      \                                      const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 18106
      start: 18101
    functionDepth: 0
    functionLinenumber: 18101
    functionLinenumberEnd: 18106
    functionName: roaring::api::roaring_bitmap_andnot_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_andnot_cardinality(const roaring_bitmap_t
      *x1,\n                                           const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 18114
      start: 18108
    functionDepth: 0
    functionLinenumber: 18108
    functionLinenumberEnd: 18114
    functionName: roaring::api::roaring_bitmap_xor_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_xor_cardinality(const roaring_bitmap_t *x1,\n
      \                                       const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18128,1
    - Dst: container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 18131
      start: 18117
    functionDepth: 0
    functionLinenumber: 18117
    functionLinenumberEnd: 18131
    functionName: roaring::api::roaring_bitmap_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - container_contains
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_contains(const roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18138,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18139,1
    - Dst: roaring::api::roaring_bitmap_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18142,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18159,1
    - Dst: container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18162,1
    - Dst: container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18164,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18167,1
    - Dst: container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18168,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18172,1
    - Dst: container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - r
    - range_start
    - range_end
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 18178
      start: 18137
    functionDepth: 0
    functionLinenumber: 18137
    functionLinenumberEnd: 18178
    functionName: roaring::api::roaring_bitmap_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_contains
    - container_is_full
    - ra_get_container_at_index
    - UINT64_C
    - container_contains_range
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_contains_range(const roaring_bitmap_t *r, uint64_t
      range_start, uint64_t range_end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18183,1
    - Dst: roaring::api::roaring_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18184,1
    - Dst: roaring::api::roaring_bitmap_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 18186
      start: 18181
    functionDepth: 0
    functionLinenumber: 18181
    functionLinenumberEnd: 18186
    functionName: roaring::api::roaring_bitmap_is_strict_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_get_cardinality
    - roaring::api::roaring_bitmap_is_subset
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_is_strict_subset(const roaring_bitmap_t *r1,\n
      \                                    const roaring_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18228,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18234,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - rb
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 18245
      start: 18218
    functionDepth: 0
    functionLinenumber: 18218
    functionLinenumberEnd: 18245
    functionName: roaring::api::roaring_bitmap_frozen_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_frozen_size_in_bytes(const roaring_bitmap_t *rb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arena
    - num_bytes
    argTypes:
    - char**
    - size_t
    constantsTouched: []
    func_position:
      end: 18251
      start: 18247
    functionDepth: 0
    functionLinenumber: 18247
    functionLinenumberEnd: 18251
    functionName: roaring::api::arena_alloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *arena_alloc(char **arena, size_t num_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18272,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18278,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18283,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18288,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18300,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18301,1
    - Dst: bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18307,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18312,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18314,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18321,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18323,1
    - Dst: __builtin_unreachable
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18329,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18331,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18333,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18334,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18336,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 2
    argNames:
    - rb
    - buf
    argTypes:
    - roaring_bitmap_t*
    - char*
    constantsTouched: []
    func_position:
      end: 18337
      start: 18253
    functionDepth: 0
    functionLinenumber: 18253
    functionLinenumberEnd: 18337
    functionName: roaring::api::roaring_bitmap_frozen_serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - bitset_container_compute_cardinality
    - memcpy
    - roaring::api::arena_alloc
    - const_CAST_array
    - __builtin_unreachable
    - const_CAST_run
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_frozen_serialize(const roaring_bitmap_t *rb, char
      *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18350,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18383,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18410,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18417,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18424,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18431,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18433,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18440,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18450,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18451,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18452,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18455,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18459,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 81
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 18465
      start: 18339
    functionDepth: 0
    functionLinenumber: 18339
    functionLinenumberEnd: 18465
    functionName: roaring::api::roaring_bitmap_frozen_view
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - UINT32_C
    - assert
    - roaring_free
    - roaring::api::arena_alloc
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: 'roaring_bitmap_t *

      roaring_bitmap_frozen_view(const char *buf, size_t length)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18478,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18481,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18510,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18546,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18551,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18562,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18577,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18588,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18592,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18596,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18605,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18619
      start: 18467
    functionDepth: 0
    functionLinenumber: 18467
    functionLinenumberEnd: 18619
    functionName: roaring_bitmap_t *roaring_bitmap_portable_deserialize_frozen(const
      char *buf)
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::api::arena_alloc
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: ALLOW_UNALIGNED roaring_bitmap_t *roaring_bitmap_portable_deserialize_frozen(const
      char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18667,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18682,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18685,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18686,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18687,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18693,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - ra
    - new_capacity
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 18695
      start: 18660
    functionDepth: 0
    functionLinenumber: 18660
    functionLinenumberEnd: 18695
    functionName: roaring::internal::realloc_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - roaring_free
    linkageType: ''
    returnType: bool
    signature: bool realloc_array(roaring_array_t *ra, int32_t new_capacity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_init
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - new_ra
    - cap
    argTypes:
    - roaring_array_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 18714
      start: 18697
    functionDepth: 0
    functionLinenumber: 18697
    functionLinenumberEnd: 18714
    functionName: roaring::internal::ra_init_with_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_init
    linkageType: ''
    returnType: bool
    signature: bool ra_init_with_capacity(roaring_array_t *new_ra, uint32_t cap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::realloc_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 18724
      start: 18716
    functionDepth: 0
    functionLinenumber: 18716
    functionLinenumberEnd: 18724
    functionName: roaring::internal::ra_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::realloc_array
    linkageType: ''
    returnType: int
    signature: int ra_shrink_to_fit(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - new_ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 18735
      start: 18726
    functionDepth: 0
    functionLinenumber: 18726
    functionLinenumberEnd: 18735
    functionName: roaring::internal::ra_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ra_init(roaring_array_t *new_ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_clear_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18739,1
    - Dst: roaring::internal::realloc_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18745,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18750,1
    - Dst: roaring::internal::get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18754,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18758,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18760,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18763,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18767,1
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18770,1
    - Dst: roaring::internal::ra_clear_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18772,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - source
    - dest
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - bool
    constantsTouched: []
    func_position:
      end: 18778
      start: 18737
    functionDepth: 0
    functionLinenumber: 18737
    functionLinenumberEnd: 18778
    functionName: roaring::internal::ra_overwrite
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::internal::container_clone
    - roaring::internal::realloc_array
    - roaring::internal::container_free
    - roaring::internal::ra_clear_containers
    - roaring::internal::get_copy_of_container
    - roaring::internal::ra_clear_without_containers
    linkageType: ''
    returnType: bool
    signature: "bool ra_overwrite(const roaring_array_t *source, roaring_array_t *dest,\n
      \                 bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 18784
      start: 18780
    functionDepth: 0
    functionLinenumber: 18780
    functionLinenumberEnd: 18784
    functionName: roaring::internal::ra_clear_containers
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring::internal::container_free
    linkageType: ''
    returnType: void
    signature: void ra_clear_containers(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_clear_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18787,1
    - Dst: roaring::internal::ra_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 18790
      start: 18786
    functionDepth: 0
    functionLinenumber: 18786
    functionLinenumberEnd: 18790
    functionName: roaring::internal::ra_reset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_clear_containers
    - roaring::internal::ra_shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void ra_reset(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 18799
      start: 18792
    functionDepth: 0
    functionLinenumber: 18792
    functionLinenumberEnd: 18799
    functionName: roaring::internal::ra_clear_without_containers
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 1
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void ra_clear_without_containers(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_clear_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18802,1
    - Dst: roaring::internal::ra_clear_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 18804
      start: 18801
    functionDepth: 0
    functionLinenumber: 18801
    functionLinenumberEnd: 18804
    functionName: roaring::internal::ra_clear
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_clear_containers
    - roaring::internal::ra_clear_without_containers
    linkageType: ''
    returnType: void
    signature: void ra_clear(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18809,1
    - Dst: roaring::internal::realloc_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ra
    - k
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 18820
      start: 18806
    functionDepth: 0
    functionLinenumber: 18806
    functionLinenumberEnd: 18820
    functionName: roaring::internal::extend_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::realloc_array
    - assert
    linkageType: ''
    returnType: bool
    signature: bool extend_array(roaring_array_t *ra, int32_t k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ra
    - key
    - c
    - typecode
    argTypes:
    - roaring_array_t*
    - uint16_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 18833
      start: 18822
    functionDepth: 0
    functionLinenumber: 18822
    functionLinenumberEnd: 18833
    functionName: roaring::internal::ra_append
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append(\n    roaring_array_t *ra, uint16_t key,\n    container_t
      *c, uint8_t typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18837,1
    - Dst: roaring::internal::get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18844,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ra
    - sa
    - index
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 18854
      start: 18835
    functionDepth: 0
    functionLinenumber: 18835
    functionLinenumberEnd: 18854
    functionName: roaring::internal::ra_append_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_clone
    - roaring::internal::get_copy_of_container
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append_copy(roaring_array_t *ra, const roaring_array_t *sa,\n
      \                   uint16_t index, bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_append_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - ra
    - sa
    - stopping_key
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 18862
      start: 18856
    functionDepth: 0
    functionLinenumber: 18856
    functionLinenumberEnd: 18862
    functionName: roaring::internal::ra_append_copies_until
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_append_copy
    linkageType: ''
    returnType: void
    signature: "void ra_append_copies_until(roaring_array_t *ra, const roaring_array_t
      *sa,\n                            uint16_t stopping_key, bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18867,1
    - Dst: roaring::internal::get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18872,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - ra
    - sa
    - start_index
    - end_index
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - int32_t
    - int32_t
    - bool
    constantsTouched: []
    func_position:
      end: 18883
      start: 18864
    functionDepth: 0
    functionLinenumber: 18864
    functionLinenumberEnd: 18883
    functionName: roaring::internal::ra_append_copy_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_clone
    - roaring::internal::get_copy_of_container
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append_copy_range(roaring_array_t *ra, const roaring_array_t
      *sa,\n                          int32_t start_index, int32_t end_index,\n                          bool
      copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ra
    - sa
    - before_start
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 18893
      start: 18885
    functionDepth: 0
    functionLinenumber: 18885
    functionLinenumberEnd: 18893
    functionName: roaring::internal::ra_append_copies_after
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_append_copy_range
    linkageType: ''
    returnType: void
    signature: "void ra_append_copies_after(roaring_array_t *ra, const roaring_array_t
      *sa,\n                            uint16_t before_start, bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ra
    - sa
    - start_index
    - end_index
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 18907
      start: 18895
    functionDepth: 0
    functionLinenumber: 18895
    functionLinenumberEnd: 18907
    functionName: roaring::internal::ra_append_move_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append_move_range(roaring_array_t *ra, roaring_array_t *sa,\n
      \                         int32_t start_index, int32_t end_index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18912,1
    - Dst: roaring::internal::get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18918,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - ra
    - sa
    - start_index
    - end_index
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - int32_t
    - int32_t
    - bool
    constantsTouched: []
    func_position:
      end: 18929
      start: 18909
    functionDepth: 0
    functionLinenumber: 18909
    functionLinenumberEnd: 18929
    functionName: roaring::internal::ra_append_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_clone
    - roaring::internal::get_copy_of_container
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append_range(roaring_array_t *ra, roaring_array_t *sa,\n                     int32_t
      start_index, int32_t end_index,\n                     bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ra
    - x
    - typecode
    argTypes:
    - roaring_array_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 18938
      start: 18931
    functionDepth: 0
    functionLinenumber: 18931
    functionLinenumberEnd: 18938
    functionName: roaring::internal::ra_get_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: container_t
    signature: "container_t *ra_get_container(\n    roaring_array_t *ra, uint16_t
      x, uint8_t *typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ra
    - x
    - pos
    argTypes:
    - roaring_array_t*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 18959
      start: 18953
    functionDepth: 0
    functionLinenumber: 18953
    functionLinenumberEnd: 18959
    functionName: roaring::internal::ra_advance_until_freeing
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_free
    linkageType: ''
    returnType: int32_t
    signature: int32_t ra_advance_until_freeing(roaring_array_t *ra, uint16_t x, int32_t
      pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18965,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18967,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18969,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ra
    - i
    - key
    - c
    - typecode
    argTypes:
    - roaring_array_t*
    - int32_t
    - uint16_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 18977
      start: 18961
    functionDepth: 0
    functionLinenumber: 18961
    functionLinenumberEnd: 18977
    functionName: roaring::internal::ra_insert_new_key_value_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_insert_new_key_value_at(\n    roaring_array_t *ra, int32_t
      i, uint16_t key,\n    container_t *c, uint8_t typecode\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ra
    - new_length
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 18987
      start: 18984
    functionDepth: 0
    functionLinenumber: 18984
    functionLinenumberEnd: 18987
    functionName: roaring::internal::ra_downsize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ra_downsize(roaring_array_t *ra, int32_t new_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18990,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18992,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:18994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ra
    - i
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 18997
      start: 18989
    functionDepth: 0
    functionLinenumber: 18989
    functionLinenumberEnd: 18997
    functionName: roaring::internal::ra_remove_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void ra_remove_at_index(roaring_array_t *ra, int32_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19000,1
    - Dst: roaring::internal::ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ra
    - i
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 19002
      start: 18999
    functionDepth: 0
    functionLinenumber: 18999
    functionLinenumberEnd: 19002
    functionName: roaring::internal::ra_remove_at_index_and_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_remove_at_index
    - roaring::internal::container_free
    linkageType: ''
    returnType: void
    signature: void ra_remove_at_index_and_free(roaring_array_t *ra, int32_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19011,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19012,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19019,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19021,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ra
    - begin
    - end
    - new_begin
    argTypes:
    - roaring_array_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19025
      start: 19009
    functionDepth: 0
    functionLinenumber: 19009
    functionLinenumberEnd: 19025
    functionName: roaring::internal::ra_copy_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: "void ra_copy_range(roaring_array_t *ra, uint32_t begin, uint32_t end,\n
      \                  uint32_t new_begin)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19029,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19033,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19035,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ra
    - count
    - distance
    argTypes:
    - roaring_array_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 19040
      start: 19027
    functionDepth: 0
    functionLinenumber: 19027
    functionLinenumberEnd: 19040
    functionName: roaring::internal::ra_shift_tail
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memmove
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: void ra_shift_tail(roaring_array_t *ra, int32_t count, int32_t distance)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ra
    - ans
    argTypes:
    - roaring_array_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 19051
      start: 19043
    functionDepth: 0
    functionLinenumber: 19043
    functionLinenumberEnd: 19051
    functionName: roaring::internal::ra_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ra_to_uint32_array(const roaring_array_t *ra, uint32_t *ans)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19067,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19071,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19074,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19077,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19077,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19085,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19089,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19095,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19098,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19100,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19101,1
    - Dst: roaring::internal::container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19106,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19108,1
    - Dst: roaring::internal::container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19112,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19114,1
    - Dst: roaring::internal::container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19118,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19120,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19130,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19131,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 4
    argNames:
    - ra
    - offset
    - limit
    - ans
    argTypes:
    - roaring_array_t*
    - size_t
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 19134
      start: 19053
    functionDepth: 0
    functionLinenumber: 19053
    functionLinenumberEnd: 19134
    functionName: roaring::internal::ra_range_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - memset
    - roaring_malloc
    - memcpy
    - roaring_free
    - roaring::internal::container_unwrap_shared
    - roaring::internal::container_to_uint32_array
    - const_CAST_array
    - roaring::internal::run_container_cardinality
    - free
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: bool ra_range_uint32_array(const roaring_array_t *ra, size_t offset,
      size_t limit, uint32_t *ans)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 19143
      start: 19136
    functionDepth: 0
    functionLinenumber: 19136
    functionLinenumberEnd: 19143
    functionName: roaring::internal::ra_has_run_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::get_container_type
    linkageType: ''
    returnType: bool
    signature: bool ra_has_run_container(const roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_has_run_container
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 19156
      start: 19145
    functionDepth: 0
    functionLinenumber: 19145
    functionLinenumberEnd: 19156
    functionName: roaring::internal::ra_portable_header_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_has_run_container
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ra_portable_header_size(const roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 19165
      start: 19158
    functionDepth: 0
    functionLinenumber: 19158
    functionLinenumberEnd: 19165
    functionName: roaring::internal::ra_portable_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_size_in_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ra_portable_size_in_bytes(const roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19174,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19178,1
    - Dst: roaring::internal::get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19180,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19185,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19187,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19196,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19198,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19204,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19210,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19216,1
    - Dst: roaring::internal::container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19220,1
    - Dst: roaring::internal::container_write
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - ra
    - buf
    argTypes:
    - roaring_array_t*
    - char*
    constantsTouched: []
    func_position:
      end: 19227
      start: 19168
    functionDepth: 0
    functionLinenumber: 19168
    functionLinenumberEnd: 19227
    functionName: roaring::internal::ra_portable_serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_size_in_bytes
    - memcpy
    - roaring::internal::container_write
    - roaring::internal::get_container_type
    - assert
    - roaring_free
    linkageType: ''
    returnType: size_t
    signature: size_t ra_portable_serialize(const roaring_array_t *ra, char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19240,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19253,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19281,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19300,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 19314
      start: 19236
    functionDepth: 0
    functionLinenumber: 19236
    functionLinenumberEnd: 19314
    functionName: roaring::internal::ra_portable_deserialize_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t ra_portable_deserialize_size(const char *buf, const size_t maxbytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19324,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19328,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19332,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19343,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19346,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19350,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19355,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19365,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19375,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19382,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19388,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19394,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19395,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19405,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19420,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19421,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19425,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19427,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19428,1
    - Dst: roaring::internal::bitset_container_read
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19432,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19439,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19440,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19444,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19448,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19449,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19454,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19456,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19457,1
    - Dst: roaring::internal::run_container_read
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19461,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19469,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19470,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19475,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19477,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19478,1
    - Dst: roaring::internal::array_container_read
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19482,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 129
    argCount: 4
    argNames:
    - answer
    - buf
    - maxbytes
    - readbytes
    argTypes:
    - roaring_array_t*
    - char*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 19488
      start: 19321
    functionDepth: 0
    functionLinenumber: 19321
    functionLinenumberEnd: 19488
    functionName: roaring::internal::ra_portable_deserialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fprintf
    - roaring::internal::bitset_container_read
    - roaring::internal::run_container_create
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_read
    - roaring::internal::ra_clear
    - roaring::internal::run_container_read
    linkageType: ''
    returnType: bool
    signature: bool ra_portable_deserialize(roaring_array_t *answer, const char *buf,
      const size_t maxbytes, size_t * readbytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - roaring_pq_element_t*
    - roaring_pq_element_t*
    constantsTouched: []
    func_position:
      end: 19520
      start: 19518
    functionDepth: 0
    functionLinenumber: 19518
    functionLinenumberEnd: 19520
    functionName: roaring::api::compare
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare(roaring_pq_element_t *t1, roaring_pq_element_t *t2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::compare
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pq
    - t
    argTypes:
    - roaring_pq_t*
    - roaring_pq_element_t*
    constantsTouched: []
    func_position:
      end: 19533
      start: 19522
    functionDepth: 0
    functionLinenumber: 19522
    functionLinenumberEnd: 19533
    functionName: roaring::api::pq_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::compare
    linkageType: ''
    returnType: void
    signature: void pq_add(roaring_pq_t *pq, roaring_pq_element_t *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - roaring_pq_t*
    constantsTouched: []
    func_position:
      end: 19537
      start: 19535
    functionDepth: 0
    functionLinenumber: 19535
    functionLinenumberEnd: 19537
    functionName: roaring::api::pq_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void pq_free(roaring_pq_t *pq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::compare
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19548,1
    - Dst: roaring::api::compare
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - pq
    - i
    argTypes:
    - roaring_pq_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19560
      start: 19539
    functionDepth: 0
    functionLinenumber: 19539
    functionLinenumberEnd: 19560
    functionName: roaring::api::percolate_down
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::compare
    linkageType: ''
    returnType: void
    signature: void percolate_down(roaring_pq_t *pq, uint32_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19564,1
    - Dst: roaring::api::roaring_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19571,1
    - Dst: roaring::api::percolate_down
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - arr
    - length
    argTypes:
    - roaring_bitmap_t**
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19580
      start: 19562
    functionDepth: 0
    functionLinenumber: 19562
    functionLinenumberEnd: 19580
    functionName: roaring::api::create_pq
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::percolate_down
    - roaring_malloc
    - roaring::api::roaring_bitmap_portable_size_in_bytes
    linkageType: ''
    returnType: roaring_pq_t
    signature: roaring_pq_t *create_pq(const roaring_bitmap_t **arr, uint32_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::percolate_down
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pq
    argTypes:
    - roaring_pq_t*
    constantsTouched: []
    func_position:
      end: 19591
      start: 19582
    functionDepth: 0
    functionLinenumber: 19582
    functionLinenumberEnd: 19591
    functionName: roaring::api::pq_poll
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::percolate_down
    linkageType: ''
    returnType: roaring_pq_element_t
    signature: roaring_pq_element_t pq_poll(roaring_pq_t *pq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19600,1
    - Dst: roaring::api::roaring_bitmap_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19604,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19608,1
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19619,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19620,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19622,1
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19624,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19625,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19627,1
    - Dst: container_lazy_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19634,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19635,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19637,1
    - Dst: container_lazy_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19640,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19641,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19643,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19649,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19654,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19655,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19658,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19660,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19663,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19666,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19668,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19671,1
    - Dst: ra_append_move_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19675,1
    - Dst: ra_append_move_range
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19678,1
    - Dst: ra_clear_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19681,1
    - Dst: ra_clear_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19682,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19683,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19684,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 19686
      start: 19594
    functionDepth: 0
    functionLinenumber: 19594
    functionLinenumberEnd: 19686
    functionName: roaring::api::lazy_or_from_lazy_inputs
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_append
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - ra_get_key_at_index
    - ra_append_move_range
    - roaring::api::roaring_bitmap_free
    - assert
    - ra_clear_without_containers
    - roaring_free
    - roaring::api::roaring_bitmap_create_with_capacity
    - container_lazy_ior
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *lazy_or_from_lazy_inputs(roaring_bitmap_t *x1,\n
      \                                                 roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19697,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19700,1
    - Dst: roaring::api::create_pq
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19702,1
    - Dst: roaring::api::pq_poll
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19704,1
    - Dst: roaring::api::pq_poll
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19705,1
    - Dst: roaring::api::lazy_or_from_lazy_inputs
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19709,1
    - Dst: roaring::api::pq_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19716,1
    - Dst: roaring::api::roaring_bitmap_lazy_or_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19718,1
    - Dst: roaring::api::roaring_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19719,1
    - Dst: roaring::api::pq_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19720,1
    - Dst: roaring::api::roaring_bitmap_lazy_or_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19722,1
    - Dst: roaring::api::roaring_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19723,1
    - Dst: roaring::api::pq_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19725,1
    - Dst: roaring::api::roaring_bitmap_lazy_or
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19728,1
    - Dst: roaring::api::pq_add
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19733,1
    - Dst: roaring::api::pq_poll
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19736,1
    - Dst: roaring::api::roaring_bitmap_repair_after_lazy
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19738,1
    - Dst: roaring::api::pq_free
      Src: /src/ndpi/src/lib/third_party/src/roaring_v2.c:19739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - number
    - x
    argTypes:
    - uint32_t
    - roaring_bitmap_t**
    constantsTouched: []
    func_position:
      end: 19741
      start: 19694
    functionDepth: 0
    functionLinenumber: 19694
    functionLinenumberEnd: 19741
    functionName: roaring::api::roaring_bitmap_or_many_heap
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring_v2.c
    functionUses: 0
    functionsReached:
    - roaring::api::pq_poll
    - roaring::api::pq_add
    - roaring::api::pq_free
    - roaring::api::roaring_bitmap_copy
    - roaring::api::roaring_bitmap_repair_after_lazy
    - roaring::api::roaring_bitmap_lazy_or
    - roaring::api::create_pq
    - roaring::api::lazy_or_from_lazy_inputs
    - roaring::api::roaring_bitmap_lazy_or_inplace
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_portable_size_in_bytes
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_or_many_heap(uint32_t number,\n                                              const
      roaring_bitmap_t **x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - hs
    - s
    - len
    - flags
    argTypes:
    - h5_state_t*
    - char*
    - size_t
    - enum html5_flags
    constantsTouched: []
    func_position:
      end: 89
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 89
    functionName: libinjection_h5_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void libinjection_h5_init(h5_state_t* hs, const char* s, size_t len,
      enum html5_flags flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: libinjection_h5_next
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int libinjection_h5_next(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: h5_is_white
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int h5_is_white(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: h5_skip_white
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h5_skip_white(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: h5_state_eof
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int h5_state_eof(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:151,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:152,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:153,1
    - Dst: h5_state_tag_open
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: h5_state_data
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached:
    - h5_state_tag_open
    - assert
    - TRACE
    - memchr
    linkageType: ''
    returnType: int
    signature: int h5_state_data(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:182,1
    - Dst: h5_state_markup_declaration_open
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:189,1
    - Dst: h5_state_end_tag_open
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:193,1
    - Dst: h5_state_bogus_comment
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:196,1
    - Dst: h5_state_bogus_comment2
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:201,1
    - Dst: h5_state_tag_name
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:203,1
    - Dst: h5_state_tag_name
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:206,1
    - Dst: h5_state_data
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:210,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 218
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 218
    functionName: h5_state_tag_open
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - h5_state_bogus_comment
    - h5_state_data
    - TRACE
    - h5_state_end_tag_open
    - h5_state_markup_declaration_open
    - h5_state_bogus_comment2
    - h5_state_tag_name
    linkageType: ''
    returnType: int
    signature: int h5_state_tag_open(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:226,1
    - Dst: h5_state_data
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:233,1
    - Dst: h5_state_tag_name
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:235,1
    - Dst: h5_state_bogus_comment
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 240
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 240
    functionName: h5_state_end_tag_open
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - h5_state_data
    - h5_state_tag_name
    - TRACE
    - h5_state_bogus_comment
    linkageType: ''
    returnType: int
    signature: int h5_state_end_tag_open(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: h5_state_tag_name_close
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached:
    - TRACE
    linkageType: ''
    returnType: int
    signature: int h5_state_tag_name_close(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:269,1
    - Dst: h5_is_white
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 316
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 316
    functionName: h5_state_tag_name
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 2
    functionsReached:
    - h5_is_white
    - TRACE
    linkageType: ''
    returnType: int
    signature: int h5_state_tag_name(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:325,1
    - Dst: h5_skip_white
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:330,1
    - Dst: h5_state_self_closing_start_tag
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:349,1
    - Dst: h5_state_attribute_name
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 363
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 363
    functionName: h5_state_before_attribute_name
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached:
    - h5_state_self_closing_start_tag
    - h5_skip_white
    - TRACE
    - h5_state_attribute_name
    linkageType: ''
    returnType: int
    signature: int h5_state_before_attribute_name(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:370,1
    - Dst: h5_is_white
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 413
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 413
    functionName: h5_state_attribute_name
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - h5_is_white
    - TRACE
    linkageType: ''
    returnType: int
    signature: int h5_state_attribute_name(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:422,1
    - Dst: h5_skip_white
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:423,1
    - Dst: h5_state_self_closing_start_tag
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:430,1
    - Dst: h5_state_before_attribute_value
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:434,1
    - Dst: h5_state_tag_name_close
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:437,1
    - Dst: h5_state_attribute_name
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 443
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 443
    functionName: h5_state_after_attribute_name
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached:
    - TRACE
    - h5_state_self_closing_start_tag
    - h5_state_tag_name_close
    - h5_state_before_attribute_value
    - h5_skip_white
    - h5_state_attribute_name
    linkageType: ''
    returnType: int
    signature: int h5_state_after_attribute_name(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:451,1
    - Dst: h5_skip_white
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:453,1
    - Dst: h5_state_attribute_value_double_quote
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:461,1
    - Dst: h5_state_attribute_value_single_quote
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:463,1
    - Dst: h5_state_attribute_value_back_quote
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:466,1
    - Dst: h5_state_attribute_value_no_quote
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 470
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 470
    functionName: h5_state_before_attribute_value
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - h5_state_attribute_value_single_quote
    - h5_state_attribute_value_double_quote
    - TRACE
    - h5_state_attribute_value_back_quote
    - h5_skip_white
    - h5_state_attribute_value_no_quote
    linkageType: ''
    returnType: int
    signature: int h5_state_before_attribute_value(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:477,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - hs
    - qchar
    argTypes:
    - h5_state_t*
    - char
    constantsTouched: []
    func_position:
      end: 503
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 503
    functionName: h5_state_attribute_value_quote
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached:
    - TRACE
    - memchr
    linkageType: ''
    returnType: int
    signature: int h5_state_attribute_value_quote(h5_state_t* hs, char qchar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:508,1
    - Dst: h5_state_attribute_value_quote
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 510
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 510
    functionName: h5_state_attribute_value_double_quote
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - TRACE
    - h5_state_attribute_value_quote
    linkageType: ''
    returnType: int
    signature: int h5_state_attribute_value_double_quote(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:515,1
    - Dst: h5_state_attribute_value_quote
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: h5_state_attribute_value_single_quote
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - TRACE
    - h5_state_attribute_value_quote
    linkageType: ''
    returnType: int
    signature: int h5_state_attribute_value_single_quote(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:522,1
    - Dst: h5_state_attribute_value_quote
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: h5_state_attribute_value_back_quote
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - TRACE
    - h5_state_attribute_value_quote
    linkageType: ''
    returnType: int
    signature: int h5_state_attribute_value_back_quote(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:531,1
    - Dst: h5_is_white
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:535,1
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 559
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 559
    functionName: h5_state_attribute_value_no_quote
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - h5_is_white
    - TRACE
    linkageType: ''
    returnType: int
    signature: int h5_state_attribute_value_no_quote(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:568,1
    - Dst: h5_is_white
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:573,1
    - Dst: h5_state_before_attribute_name
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:575,1
    - Dst: h5_state_self_closing_start_tag
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:578,1
    - Dst: h5_state_before_attribute_name
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 589
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 589
    functionName: h5_state_after_attribute_value_quoted_state
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 0
    functionsReached:
    - h5_is_white
    - h5_state_self_closing_start_tag
    - TRACE
    - h5_state_before_attribute_name
    linkageType: ''
    returnType: int
    signature: int h5_state_after_attribute_value_quoted_state(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:600,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:606,1
    - Dst: h5_state_before_attribute_name
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 616
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 616
    functionName: h5_state_self_closing_start_tag
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 3
    functionsReached:
    - h5_state_before_attribute_name
    - assert
    - TRACE
    linkageType: ''
    returnType: int
    signature: int h5_state_self_closing_start_tag(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:625,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 641
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 641
    functionName: h5_state_bogus_comment
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 2
    functionsReached:
    - TRACE
    - memchr
    linkageType: ''
    returnType: int
    signature: int h5_state_bogus_comment(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:651,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 677
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 677
    functionName: h5_state_bogus_comment2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - TRACE
    - memchr
    linkageType: ''
    returnType: int
    signature: int h5_state_bogus_comment2(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:686,1
    - Dst: h5_state_doctype
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:698,1
    - Dst: h5_state_cdata
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:710,1
    - Dst: h5_state_comment
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:715,1
    - Dst: h5_state_bogus_comment
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:718,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 15
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 719
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 719
    functionName: h5_state_markup_declaration_open
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - h5_state_doctype
    - h5_state_bogus_comment
    - TRACE
    - h5_state_cdata
    - h5_state_comment
    linkageType: ''
    returnType: int
    signature: int h5_state_markup_declaration_open(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:740,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:744,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 814
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 814
    functionName: h5_state_comment
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - TRACE
    - memchr
    linkageType: ''
    returnType: int
    signature: int h5_state_comment(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:821,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 844
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 844
    functionName: h5_state_cdata
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - TRACE
    - memchr
    linkageType: ''
    returnType: int
    signature: int h5_state_cdata(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:854,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_html5.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - hs
    argTypes:
    - h5_state_t*
    constantsTouched: []
    func_position:
      end: 868
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 868
    functionName: h5_state_doctype
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
    functionUses: 1
    functionsReached:
    - TRACE
    - memchr
    linkageType: ''
    returnType: int
    signature: int h5_state_doctype(h5_state_t* hs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SIG1
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:53,1
    - Dst: SIG0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:53,1
    - Dst: EP1
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:65,1
    - Dst: CH
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:65,1
    - Dst: EP0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:66,1
    - Dst: MAJ
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - data
    argTypes:
    - ndpi_SHA256_CTX*
    - u_int8_t[]
    constantsTouched: []
    func_position:
      end: 85
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 85
    functionName: sha256_transform
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c
    functionUses: 0
    functionsReached:
    - SIG1
    - EP0
    - CH
    - EP1
    - SIG0
    - MAJ
    linkageType: ''
    returnType: void
    signature: void sha256_transform(ndpi_SHA256_CTX *ctx, const u_int8_t data[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ndpi_SHA256_CTX*
    constantsTouched: []
    func_position:
      end: 99
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 99
    functionName: ndpi_sha256_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_sha256_init(ndpi_SHA256_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha256_transform
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - data
    - len
    argTypes:
    - ndpi_SHA256_CTX*
    - u_int8_t[]
    - size_t
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 114
    functionName: ndpi_sha256_update
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c
    functionUses: 1
    functionsReached:
    - sha256_transform
    linkageType: ''
    returnType: void
    signature: void ndpi_sha256_update(ndpi_SHA256_CTX *ctx, const u_int8_t data[],
      size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha256_transform
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:132,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:133,1
    - Dst: sha256_transform
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - hash
    argTypes:
    - ndpi_SHA256_CTX*
    - u_int8_t[]
    constantsTouched: []
    func_position:
      end: 160
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 160
    functionName: ndpi_sha256_final
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c
    functionUses: 1
    functionsReached:
    - memset
    - sha256_transform
    linkageType: ''
    returnType: void
    signature: void ndpi_sha256_final(ndpi_SHA256_CTX *ctx, u_int8_t hash[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct edge*
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: edge_get_alpha
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AC_ALPHABET_t
    signature: AC_ALPHABET_t *edge_get_alpha(struct edge *e)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: edge_data_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t edge_data_size(int num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kcalloc
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: acho_calloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - kcalloc
    linkageType: ''
    returnType: void
    signature: void *acho_calloc(size_t nmemb, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kmalloc
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: acho_malloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - kmalloc
    linkageType: ''
    returnType: void
    signature: void *acho_malloc(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kfree
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - old
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: acho_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - kfree
    linkageType: ''
    returnType: void
    signature: void acho_free(void *old)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acho_calloc
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:167,1
    - Dst: node_create
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:169,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - mc
    argTypes:
    - MATCH_CALLBACK_f
    constantsTouched: []
    func_position:
      end: 183
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 183
    functionName: ac_automata_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 4
    functionsReached:
    - acho_free
    - node_create
    - acho_calloc
    linkageType: ''
    returnType: AC_AUTOMATA_t
    signature: AC_AUTOMATA_t * ac_automata_init (MATCH_CALLBACK_f mc)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - thiz
    - feature
    argTypes:
    - AC_AUTOMATA_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: ac_automata_feature
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: AC_ERROR_t
    signature: AC_ERROR_t ac_automata_feature (AC_AUTOMATA_t * thiz, unsigned int
      feature)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - thiz
    - name
    - debug
    argTypes:
    - AC_AUTOMATA_t*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: ac_automata_name
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 2
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: AC_ERROR_t
    signature: AC_ERROR_t ac_automata_name (AC_AUTOMATA_t * thiz, char *name, int
      debug)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - debug
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: ac_automata_enable_debug
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ac_automata_enable_debug (int debug)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_find_next
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:251,1
    - Dst: node_create_next
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:255,1
    - Dst: node_register_matchstr
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:280,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 2
    argNames:
    - thiz
    - patt
    argTypes:
    - AC_AUTOMATA_t*
    - AC_PATTERN_t*
    constantsTouched: []
    func_position:
      end: 286
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 286
    functionName: ac_automata_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 4
    functionsReached:
    - node_register_matchstr
    - node_find_next
    - node_create_next
    linkageType: ''
    returnType: AC_ERROR_t
    signature: AC_ERROR_t ac_automata_add (AC_AUTOMATA_t * thiz, AC_PATTERN_t * patt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_cb
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:306,1
    - Dst: node_cb
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:324,1
    - Dst: edge_get_alpha
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:332,1
    - Dst: alpha_cb
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:334,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 4
    argNames:
    - thiz
    - node_cb
    - alpha_cb
    - data
    argTypes:
    - AC_AUTOMATA_t*
    - NODE_CALLBACK_f
    - ALPHA_CALLBACK_f
    - void*
    constantsTouched: []
    func_position:
      end: 348
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 348
    functionName: ac_automata_walk
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - node_cb
    - alpha_cb
    - edge_get_alpha
    linkageType: ''
    returnType: AC_ERROR_t
    signature: "AC_ERROR_t ac_automata_walk(AC_AUTOMATA_t * thiz,\n        NODE_CALLBACK_f
      node_cb, ALPHA_CALLBACK_f alpha_cb, void *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_union_matchstrs
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:355,1
    - Dst: node_range_edges
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:359,1
    - Dst: node_sort_edges
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:360,1
    - Dst: edge_get_alpha
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:369,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - thiz
    - n
    - idx
    - data
    argTypes:
    - AC_AUTOMATA_t*
    - AC_NODE_t*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 372
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 372
    functionName: ac_finalize_node
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - node_sort_edges
    - edge_get_alpha
    - ac_automata_union_matchstrs
    - node_range_edges
    linkageType: ''
    returnType: AC_ERROR_t
    signature: AC_ERROR_t ac_finalize_node(AC_AUTOMATA_t * thiz,AC_NODE_t * n, int
      idx, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_traverse_setfailure
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:390,1
    - Dst: ac_automata_walk
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - thiz
    argTypes:
    - AC_AUTOMATA_t*
    constantsTouched: []
    func_position:
      end: 399
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 399
    functionName: ac_automata_finalize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 3
    functionsReached:
    - ac_automata_traverse_setfailure
    - ac_automata_walk
    linkageType: ''
    returnType: AC_ERROR_t
    signature: AC_ERROR_t ac_automata_finalize (AC_AUTOMATA_t * thiz)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 3
    argNames:
    - mp
    - pos
    - txt
    argTypes:
    - AC_PATTERNS_t*
    - int
    - AC_TEXT_t*
    constantsTouched: []
    func_position:
      end: 427
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 427
    functionName: ac_automata_exact_match
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ac_automata_exact_match(AC_PATTERNS_t *mp,int pos, AC_TEXT_t *txt)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:469,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:473,1
    - Dst: node_findbs_next_ac
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:484,1
    - Dst: ac_automata_exact_match
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:494,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:504,1
    - Dst: AC_AUTOMATA_t*::match_handler
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:520,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:542,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 3
    argNames:
    - thiz
    - txt
    - param
    argTypes:
    - AC_AUTOMATA_t*
    - AC_TEXT_t*
    - AC_REP_t*
    constantsTouched: []
    func_position:
      end: 554
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 554
    functionName: ac_automata_search
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 3
    functionsReached:
    - memset
    - printf
    - AC_AUTOMATA_t*::match_handler
    - node_findbs_next_ac
    - ac_automata_exact_match
    linkageType: ''
    returnType: int
    signature: "int ac_automata_search (AC_AUTOMATA_t * thiz,\n        AC_TEXT_t *
      txt, AC_REP_t * param)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_release
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - thiz
    - n
    - idx
    - data
    argTypes:
    - AC_AUTOMATA_t*
    - AC_NODE_t*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 580
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 580
    functionName: ac_automata_release_node
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - node_release
    linkageType: ''
    returnType: AC_ERROR_t
    signature: "AC_ERROR_t ac_automata_release_node(AC_AUTOMATA_t * thiz,\n        AC_NODE_t
      *n, int idx, void *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_walk
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:586,1
    - Dst: node_release
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:589,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:591,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:605,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - thiz
    - free_pattern
    argTypes:
    - AC_AUTOMATA_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 615
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 615
    functionName: ac_automata_release
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 2
    functionsReached:
    - node_release
    - ac_automata_walk
    - acho_free
    linkageType: ''
    returnType: void
    signature: void ac_automata_release (AC_AUTOMATA_t * thiz, uint8_t free_pattern)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:622,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:623,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:624,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:630,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:633,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:638,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:641,1
    - Dst: edge_get_alpha
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:642,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:650,1
    - Dst: edge_data_size
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:653,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - n
    - ai
    argTypes:
    - AC_NODE_t*
    - struct aho_dump_info*
    constantsTouched: []
    func_position:
      end: 654
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 654
    functionName: dump_node_header
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - edge_data_size
    - fprintf
    - edge_get_alpha
    linkageType: ''
    returnType: void
    signature: void dump_node_header(AC_NODE_t * n, struct aho_dump_info *ai)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dump_node_header
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:662,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:667,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:671,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:676,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:685,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 4
    argNames:
    - thiz
    - n
    - idx
    - data
    argTypes:
    - AC_AUTOMATA_t*
    - AC_NODE_t*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 688
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 688
    functionName: dump_node_common
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    - fprintf
    - dump_node_header
    linkageType: ''
    returnType: AC_ERROR_t
    signature: "AC_ERROR_t dump_node_common(AC_AUTOMATA_t * thiz,\n        AC_NODE_t
      * n, int idx, void *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - thiz
    - node
    - next
    - idx
    - data
    argTypes:
    - AC_AUTOMATA_t*
    - AC_NODE_t*
    - AC_NODE_t*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 694
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 694
    functionName: dump_node_str
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dump_node_str(AC_AUTOMATA_t * thiz, AC_NODE_t * node,\n        AC_NODE_t
      * next, int idx, void *data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:712,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:714,1
    - Dst: acho_malloc
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:719,1
    - Dst: ac_automata_walk
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:724,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:726,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:729,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - thiz
    - file
    argTypes:
    - AC_AUTOMATA_t*
    - FILE*
    constantsTouched: []
    func_position:
      end: 733
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 733
    functionName: ac_automata_dump
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - acho_free
    - memset
    - ac_automata_walk
    - acho_malloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void ac_automata_dump(AC_AUTOMATA_t * thiz, FILE *file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_register_matchstr
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:750,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - node
    argTypes:
    - AC_NODE_t*
    constantsTouched: []
    func_position:
      end: 757
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 757
    functionName: ac_automata_union_matchstrs
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached:
    - node_register_matchstr
    linkageType: ''
    returnType: int
    signature: int ac_automata_union_matchstrs (AC_NODE_t * node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_find_next
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:773,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - thiz
    - node
    - next
    - idx
    - data
    argTypes:
    - AC_AUTOMATA_t*
    - AC_NODE_t*
    - AC_NODE_t*
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 782
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 782
    functionName: ac_automata_set_failure
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - node_find_next
    linkageType: ''
    returnType: void
    signature: 'void ac_automata_set_failure

      (AC_AUTOMATA_t * thiz, AC_NODE_t * node, AC_NODE_t * next, int idx, void *data)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ac_automata_walk
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thiz
    argTypes:
    - AC_AUTOMATA_t*
    constantsTouched: []
    func_position:
      end: 794
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 794
    functionName: ac_automata_traverse_setfailure
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached:
    - ac_automata_walk
    linkageType: ''
    returnType: void
    signature: void ac_automata_traverse_setfailure (AC_AUTOMATA_t * thiz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acho_calloc
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 803
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 803
    functionName: node_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached:
    - acho_calloc
    linkageType: ''
    returnType: AC_NODE_t
    signature: AC_NODE_t * node_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - thiz
    argTypes:
    - AC_NODE_t*
    constantsTouched: []
    func_position:
      end: 821
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 821
    functionName: node_release_pattern
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - acho_free
    linkageType: ''
    returnType: void
    signature: void node_release_pattern(AC_NODE_t * thiz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_release_pattern
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:832,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:835,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:839,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:842,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - thiz
    - free_pattern
    argTypes:
    - AC_NODE_t*
    - int
    constantsTouched: []
    func_position:
      end: 843
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 843
    functionName: node_release
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 2
    functionsReached:
    - acho_free
    - node_release_pattern
    linkageType: ''
    returnType: void
    signature: void node_release(AC_NODE_t * thiz, int free_pattern)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_ctz
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 866
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 866
    functionName: bsf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - __builtin_ctz
    linkageType: ''
    returnType: size_t
    signature: size_t bsf(uint32_t bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_ctzll
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - bits
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 884
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 884
    functionName: bsf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - __builtin_ctzll
    linkageType: ''
    returnType: size_t
    signature: size_t bsf(uint64_t bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UNALIGNED
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:891,1
    - Dst: bsf
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:901,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - unsigned char*
    - unsigned char
    - int
    constantsTouched: []
    func_position:
      end: 912
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 912
    functionName: xmemchr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - UNALIGNED
    - bsf
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      xmemchr(unsigned char *s, unsigned char c,int n)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: edge_get_alpha
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:928,1
    - Dst: xmemchr
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - thiz
    - alpha
    argTypes:
    - AC_NODE_t*
    - AC_ALPHABET_t
    constantsTouched: []
    func_position:
      end: 931
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 931
    functionName: node_find_next
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 2
    functionsReached:
    - xmemchr
    - edge_get_alpha
    linkageType: ''
    returnType: AC_NODE_t
    signature: AC_NODE_t * node_find_next(AC_NODE_t * thiz, AC_ALPHABET_t alpha)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmemchr
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - thiz
    - alpha
    argTypes:
    - AC_NODE_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 954
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 954
    functionName: node_findbs_next
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - xmemchr
    linkageType: ''
    returnType: AC_NODE_t
    signature: AC_NODE_t *node_findbs_next (AC_NODE_t * thiz, uint8_t alpha)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_findbs_next
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:962,1
    - Dst: node_findbs_next
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:967,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - thiz
    - alpha
    - icase
    argTypes:
    - AC_NODE_t*
    - uint8_t
    - int
    constantsTouched: []
    func_position:
      end: 968
      start: 956
    functionDepth: 3
    functionLinenumber: 956
    functionLinenumberEnd: 968
    functionName: node_findbs_next_ac
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached:
    - node_findbs_next
    linkageType: ''
    returnType: AC_NODE_t
    signature: AC_NODE_t *node_findbs_next_ac (AC_NODE_t * thiz, uint8_t alpha,int
      icase)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:988,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - thiz
    - newstr
    argTypes:
    - AC_NODE_t*
    - AC_PATTERN_t*
    constantsTouched: []
    func_position:
      end: 993
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 993
    functionName: node_has_matchstr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int node_has_matchstr (AC_NODE_t * thiz, AC_PATTERN_t * newstr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_find_next
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1002,1
    - Dst: node_create
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1007,1
    - Dst: node_register_outgoing
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1009,1
    - Dst: node_release
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1010,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - thiz
    - alpha
    argTypes:
    - AC_NODE_t*
    - AC_ALPHABET_t
    constantsTouched: []
    func_position:
      end: 1017
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1017
    functionName: node_create_next
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached:
    - node_release
    - node_create
    - node_find_next
    - node_register_outgoing
    linkageType: ''
    returnType: AC_NODE_t
    signature: AC_NODE_t * node_create_next (AC_NODE_t * thiz, AC_ALPHABET_t alpha)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1021
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1021
    functionName: mp_data_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mp_data_size(int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acho_calloc
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1027,1
    - Dst: mp_data_size
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1027,1
    - Dst: acho_malloc
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1032,1
    - Dst: mp_data_size
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1032,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1034,1
    - Dst: mp_data_size
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1034,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - m
    argTypes:
    - AC_PATTERNS_t*
    constantsTouched: []
    func_position:
      end: 1038
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1038
    functionName: node_resize_mp
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - acho_free
    - acho_malloc
    - memcpy
    - mp_data_size
    - acho_calloc
    linkageType: ''
    returnType: AC_PATTERNS_t
    signature: AC_PATTERNS_t * node_resize_mp(AC_PATTERNS_t *m)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_has_matchstr
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1051,1
    - Dst: node_resize_mp
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1055,1
    - Dst: node_resize_mp
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1062,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - thiz
    - str
    - is_existing
    argTypes:
    - AC_NODE_t*
    - AC_PATTERN_t*
    - int
    constantsTouched: []
    func_position:
      end: 1073
      start: 1044
    functionDepth: 2
    functionLinenumber: 1044
    functionLinenumberEnd: 1073
    functionName: node_register_matchstr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 2
    functionsReached:
    - node_has_matchstr
    - node_resize_mp
    linkageType: ''
    returnType: int
    signature: int node_register_matchstr (AC_NODE_t * thiz, AC_PATTERN_t * str,int
      is_existing)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acho_calloc
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1081,1
    - Dst: edge_data_size
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1081,1
    - Dst: edge_data_size
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1086,1
    - Dst: acho_calloc
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1087,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1089,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1093,1
    - Dst: edge_get_alpha
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1093,1
    - Dst: edge_get_alpha
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1093,1
    - Dst: acho_free
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1095,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - e
    - added
    argTypes:
    - struct edge*
    - size_t
    constantsTouched: []
    func_position:
      end: 1097
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1097
    functionName: node_resize_outgoing
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - acho_free
    - edge_data_size
    - memcpy
    - edge_get_alpha
    - acho_calloc
    linkageType: ''
    returnType: struct edge
    signature: struct edge *node_resize_outgoing(struct edge * e,size_t added)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_resize_outgoing
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1115,1
    - Dst: edge_get_alpha
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1118,1
    - Dst: node_resize_outgoing
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1130,1
    - Dst: edge_get_alpha
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - thiz
    - next
    - alpha
    argTypes:
    - AC_NODE_t*
    - AC_NODE_t*
    - AC_ALPHABET_t
    constantsTouched: []
    func_position:
      end: 1140
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1140
    functionName: node_register_outgoing
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached:
    - node_resize_outgoing
    - edge_get_alpha
    linkageType: ''
    returnType: int
    signature: 'int node_register_outgoing

      (AC_NODE_t * thiz, AC_NODE_t * next, AC_ALPHABET_t alpha)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - e
    - a
    - b
    argTypes:
    - struct edge*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1149
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1149
    functionName: node_edge_compare
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int node_edge_compare (struct edge * e, int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: edge_get_alpha
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - e
    - a
    - b
    argTypes:
    - struct edge*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 1158
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1158
    functionName: node_edge_swap
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached:
    - edge_get_alpha
    linkageType: ''
    returnType: void
    signature: void node_edge_swap (struct edge * e, int a, int b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - thiz
    - low
    - high
    argTypes:
    - AC_NODE_t*
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1178
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1178
    functionName: acho_2range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acho_2range(AC_NODE_t * thiz,uint8_t low, uint8_t high)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1191,1
    - Dst: acho_2range
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1204,1
    - Dst: node_resize_outgoing
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1215,1
    - Dst: acho_2range
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1218,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - thiz
    - node
    argTypes:
    - AC_AUTOMATA_t*
    - AC_NODE_t*
    constantsTouched: []
    func_position:
      end: 1225
      start: 1184
    functionDepth: 2
    functionLinenumber: 1184
    functionLinenumberEnd: 1225
    functionName: node_range_edges
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached:
    - memset
    - node_resize_outgoing
    - acho_2range
    linkageType: ''
    returnType: int
    signature: int node_range_edges (AC_AUTOMATA_t *thiz, AC_NODE_t * node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: acho_sort
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thiz
    argTypes:
    - AC_NODE_t*
    constantsTouched: []
    func_position:
      end: 1235
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1235
    functionName: node_sort_edges
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached:
    - acho_sort
    linkageType: ''
    returnType: void
    signature: void node_sort_edges (AC_NODE_t * thiz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmp_func
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1268,1
    - Dst: cmp_func
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1270,1
    - Dst: swap_func
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1272,1
    - Dst: swap_func
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1278,1
    - Dst: cmp_func
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1281,1
    - Dst: cmp_func
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1283,1
    - Dst: swap_func
      Src: /src/ndpi/src/lib/third_party/src/ahocorasick.c:1285,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 2
    argNames:
    - e
    - num
    argTypes:
    - struct edge*
    - size_t
    constantsTouched: []
    func_position:
      end: 1288
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1288
    functionName: acho_sort
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached:
    - swap_func
    - cmp_func
    linkageType: ''
    returnType: void
    signature: "void acho_sort(struct edge *e, size_t num,\n      int (*cmp_func)(struct
      edge *e, int a, int b),\n      void (*swap_func)(struct edge *e, int a, int
      b))"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - thiz
    - stats
    argTypes:
    - AC_AUTOMATA_t*
    - struct ac_stats*
    constantsTouched: []
    func_position:
      end: 1299
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1299
    functionName: ac_automata_get_stats
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ahocorasick.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ac_automata_get_stats(AC_AUTOMATA_t * thiz, struct ac_stats *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Derived **>
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr_to_ptr
    argTypes:
    - Base**
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: roaring::internal::movable_CAST_HELPER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - reinterpret_cast<Derived **>
    linkageType: ''
    returnType: PPDerived
    signature: PPDerived movable_CAST_HELPER(Base **ptr_to_ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 319
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 319
    functionName: roaring::internal::binarySearch
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t binarySearch(const uint16_t *array, int32_t lenarray,\n                            uint16_t
      ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - array
    - pos
    - length
    - min
    argTypes:
    - uint16_t*
    - int32_t
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 371
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 371
    functionName: roaring::internal::advanceUntil
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t advanceUntil(const uint16_t *array, int32_t pos,\n                                   int32_t
      length, uint16_t min)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 382
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 382
    functionName: roaring::internal::count_less
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t count_less(const uint16_t *array, int32_t lenarray,\n                                 uint16_t
      ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: roaring::internal::count_greater
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t count_greater(const uint16_t *array, int32_t lenarray,\n                                    uint16_t
      ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:659,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:660,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:663,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:665,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - words
    - start
    - end
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 668
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 668
    functionName: roaring::internal::bitset_set_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void bitset_set_range(uint64_t *words, uint32_t start,\n                                    uint32_t
      end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:679,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:680,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:686,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:688,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - words
    - start
    - lenminusone
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 692
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 692
    functionName: roaring::internal::bitset_lenrange_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - UINT64_C
    - roaring_hamming
    linkageType: ''
    returnType: int
    signature: "int bitset_lenrange_cardinality(const uint64_t *words,\n                                              uint32_t
      start,\n                                              uint32_t lenminusone)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:702,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:705,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - words
    - start
    - lenminusone
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 718
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 718
    functionName: roaring::internal::bitset_lenrange_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: bool
    signature: "bool bitset_lenrange_empty(const uint64_t *words, uint32_t start,\n
      \                                        uint32_t lenminusone)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:728,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:733,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:735,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - words
    - start
    - lenminusone
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 738
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 738
    functionName: roaring::internal::bitset_set_lenrange
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 6
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void bitset_set_lenrange(uint64_t *words, uint32_t start,\n                                       uint32_t
      lenminusone)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:748,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - words
    - start
    - end
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 753
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 753
    functionName: roaring::internal::bitset_flip_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 6
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void bitset_flip_range(uint64_t *words, uint32_t start,\n                                     uint32_t
      end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:764,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:765,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:768,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:770,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - words
    - start
    - end
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 773
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 773
    functionName: roaring::internal::bitset_reset_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 5
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void bitset_reset_range(uint64_t *words, uint32_t start,\n                                      uint32_t
      end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:905,1
    - Dst: _mm256_setr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:915,1
    - Dst: _mm256_set1_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:925,1
    - Dst: _mm256_and_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:927,1
    - Dst: _mm256_and_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:928,1
    - Dst: _mm256_srli_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:928,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:929,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:930,1
    - Dst: _mm256_sad_epu8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m256i
    constantsTouched: []
    func_position:
      end: 932
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 932
    functionName: roaring::internal::popcount256
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - _mm256_sad_epu8
    - _mm256_srli_epi16
    - _mm256_set1_epi8
    - _mm256_and_si256
    - _mm256_setr_epi8
    - _mm256_shuffle_epi8
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: CROARING_TARGET_AVX2 popcount256(__m256i v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_xor_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:941,1
    - Dst: _mm256_or_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:942,1
    - Dst: _mm256_and_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:942,1
    - Dst: _mm256_and_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:942,1
    - Dst: _mm256_xor_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - h
    - l
    - a
    - b
    - c
    argTypes:
    - __m256i*
    - __m256i*
    - __m256i
    - __m256i
    - __m256i
    constantsTouched: []
    func_position:
      end: 944
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 944
    functionName: roaring::internal::CSA
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - _mm256_or_si256
    - _mm256_and_si256
    - _mm256_xor_si256
    linkageType: ''
    returnType: void
    signature: "void CSA(__m256i *h, __m256i *l, __m256i a, __m256i b,\n                       __m256i
      c)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:953,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:954,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:955,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:956,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:957,1
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:958,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:965,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:965,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:966,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:967,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:967,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:968,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:969,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:970,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:970,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:971,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:972,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:972,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:973,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:974,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:975,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:976,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:976,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:977,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:978,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:978,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:979,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:980,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:981,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:981,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:982,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:983,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:983,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:984,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:985,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:986,1
    - Dst: roaring::internal::CSA
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:987,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:989,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:989,1
    - Dst: _mm256_slli_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:992,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:993,1
    - Dst: _mm256_slli_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:994,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:994,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:995,1
    - Dst: _mm256_slli_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:996,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:996,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:997,1
    - Dst: _mm256_slli_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:998,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:998,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:999,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:999,1
    - Dst: _mm256_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1002,1
    - Dst: roaring::internal::popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1002,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1002,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1004,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1005,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1006,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - __m256i*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1008
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 1008
    functionName: roaring::internal::avx2_harley_seal_popcount256
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::popcount256
    - _mm256_extract_epi64
    - roaring::internal::CSA
    - _mm256_add_epi64
    - _mm256_lddqu_si256
    - _mm256_slli_epi64
    - _mm256_setzero_si256
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t avx2_harley_seal_popcount256(const __m256i *data,\n                                                    const
      uint64_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1223,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1224,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1225,1
    - Dst: _mm256_extract_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m256i
    constantsTouched: []
    func_position:
      end: 1227
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1227
    functionName: roaring::internal::sum_epu64_256
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm256_extract_epi64
    linkageType: ''
    returnType: CROARING_TARGET_AVX512
    signature: CROARING_TARGET_AVX512 sum_epu64_256(const __m256i v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_extracti64x4_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1230,1
    - Dst: _mm512_extracti64x4_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1231,1
    - Dst: roaring::internal::sum_epu64_256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1233,1
    - Dst: roaring::internal::sum_epu64_256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - __m512i
    constantsTouched: []
    func_position:
      end: 1234
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1234
    functionName: roaring::internal::simd_sum_epu64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::sum_epu64_256
    - _mm512_extracti64x4_epi64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t simd_sum_epu64(const __m512i v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setzero_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1239,1
    - Dst: VPOPCNT_AND_ADD
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1243,1
    - Dst: VPOPCNT_AND_ADD
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1244,1
    - Dst: VPOPCNT_AND_ADD
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1245,1
    - Dst: VPOPCNT_AND_ADD
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1246,1
    - Dst: _mm512_add_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1250,1
    - Dst: _mm512_popcnt_epi64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1251,1
    - Dst: _mm512_loadu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1251,1
    - Dst: roaring::internal::simd_sum_epu64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - __m512i*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1255
      start: 1236
    functionDepth: 2
    functionLinenumber: 1236
    functionLinenumberEnd: 1255
    functionName: roaring::internal::avx512_vpopcount
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm512_popcnt_epi64
    - roaring::internal::simd_sum_epu64
    - _mm512_loadu_si512
    - VPOPCNT_AND_ADD
    - _mm512_add_epi64
    - _mm512_setzero_si512
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t avx512_vpopcount(const __m512i *data,\n                                        const
      uint64_t size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1383
    functionName: roaring::internal::STRUCT_CONTAINER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STRUCT_CONTAINER(array_container_s)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1417
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1417
    functionName: roaring::internal::array_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: ALLOW_UNALIGNED array_container_cardinality(const array_container_t
      *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1422
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1422
    functionName: roaring::internal::array_container_nonzero_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_nonzero_cardinality(\n    const array_container_t
      *array)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1435
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1435
    functionName: roaring::internal::array_container_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool array_container_empty(const array_container_t *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1441
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1441
    functionName: roaring::internal::array_container_full
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool array_container_full(const array_container_t *array)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - card
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 1510
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1510
    functionName: roaring::internal::array_container_serialized_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t array_container_serialized_size_in_bytes(int32_t card)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - container
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1558
      start: 1554
    functionDepth: 0
    functionLinenumber: 1554
    functionLinenumberEnd: 1558
    functionName: roaring::internal::array_container_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED array_container_size_in_bytes(\n    const array_container_t
      *container)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::memequals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1571
      start: 1563
    functionDepth: 0
    functionLinenumber: 1563
    functionLinenumberEnd: 1571
    functionName: roaring::internal::array_container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::memequals
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED array_container_equals(const array_container_t *container1,\n
      \                                         const array_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - container
    - start_rank
    - rank
    - element
    argTypes:
    - array_container_t*
    - uint32_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1596
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1596
    functionName: roaring::internal::array_container_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_select(const array_container_t *container,\n
      \                                         uint32_t *start_rank, uint32_t rank,\n
      \                                         uint32_t *element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1612,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - arr
    - pos
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1617
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1617
    functionName: roaring::internal::array_container_append
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_full
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_append(array_container_t *arr,\n                                          uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1632,1
    - Dst: roaring::internal::array_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1634,1
    - Dst: roaring::internal::array_container_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1643,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1644,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1647,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - arr
    - value
    - max_cardinality
    argTypes:
    - array_container_t*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1655
      start: 1626
    functionDepth: 0
    functionLinenumber: 1626
    functionLinenumberEnd: 1655
    functionName: roaring::internal::array_container_try_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_full
    - roaring::internal::array_container_append
    - memmove
    - roaring::internal::array_container_empty
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: int
    signature: "int array_container_try_add(array_container_t *arr,\n                                          uint16_t
      value,\n                                          int32_t max_cardinality)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_try_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arr
    - value
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1660
      start: 1658
    functionDepth: 0
    functionLinenumber: 1658
    functionLinenumberEnd: 1660
    functionName: roaring::internal::array_container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_container_try_add
    linkageType: ''
    returnType: bool
    signature: bool array_container_add(array_container_t *arr, uint16_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arr
    - pos
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1674
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1674
    functionName: roaring::internal::array_container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memmove
    linkageType: ''
    returnType: bool
    signature: "bool array_container_remove(array_container_t *arr,\n                                          uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - arr
    - pos
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1707
      start: 1677
    functionDepth: 0
    functionLinenumber: 1677
    functionLinenumberEnd: 1707
    functionName: roaring::internal::array_container_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_contains(const array_container_t *arr,\n                                     uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - arr
    - range_start
    - range_end
    argTypes:
    - array_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1737
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1737
    functionName: roaring::internal::array_container_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_contains_range(const array_container_t *arr,\n
      \                                                 uint32_t range_start,\n                                                  uint32_t
      range_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arr
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1743
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1743
    functionName: roaring::internal::array_container_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t array_container_minimum(const array_container_t *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arr
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 1749
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1749
    functionName: roaring::internal::array_container_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t array_container_maximum(const array_container_t *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arr
    - x
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1760
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1760
    functionName: roaring::internal::array_container_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int array_container_rank(const array_container_t *arr, uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - arr
    - start_rank
    - begin
    - end
    - ans
    argTypes:
    - array_container_t*
    - uint64_t
    - uint32_t*
    - uint32_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 1787
      start: 1764
    functionDepth: 0
    functionLinenumber: 1764
    functionLinenumberEnd: 1787
    functionName: roaring::internal::array_container_rank_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t array_container_rank_many(const array_container_t *arr,\n
      \                                         uint64_t start_rank,\n                                          const
      uint32_t *begin,\n                                          const uint32_t *end,
      uint64_t *ans)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arr
    - x
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1798
      start: 1790
    functionDepth: 0
    functionLinenumber: 1790
    functionLinenumberEnd: 1798
    functionName: roaring::internal::array_container_get_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int array_container_get_index(const array_container_t *arr, uint16_t
      x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - arr
    - x
    argTypes:
    - array_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1812
      start: 1801
    functionDepth: 0
    functionLinenumber: 1801
    functionLinenumberEnd: 1812
    functionName: roaring::internal::array_container_index_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int array_container_index_equalorlarger(const array_container_t *arr,\n
      \                                              uint16_t x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1826,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - array
    - min
    - max
    - nvals_less
    - nvals_greater
    argTypes:
    - array_container_t*
    - uint32_t
    - uint32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 1835
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1835
    functionName: roaring::internal::array_container_add_range_nvals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memmove
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_add_range_nvals(array_container_t *array,\n                                                   uint32_t
      min, uint32_t max,\n                                                   int32_t
      nvals_less,\n                                                   int32_t nvals_greater)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - array
    - pos
    - count
    argTypes:
    - array_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1859
      start: 1852
    functionDepth: 0
    functionLinenumber: 1852
    functionLinenumberEnd: 1859
    functionName: roaring::internal::array_container_remove_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: "void array_container_remove_range(array_container_t *array,\n                                                uint32_t
      pos, uint32_t count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1900
    functionDepth: 0
    functionLinenumber: 1900
    functionLinenumberEnd: 1903
    functionName: roaring::internal::STRUCT_CONTAINER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STRUCT_CONTAINER(bitset_container_s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASM_SHIFT_RIGHT
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1939,1
    - Dst: ASM_SET_BIT_INC_WAS_CLEAR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1943
      start: 1934
    functionDepth: 0
    functionLinenumber: 1934
    functionLinenumberEnd: 1943
    functionName: roaring::internal::bitset_container_set
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - ASM_SET_BIT_INC_WAS_CLEAR
    - ASM_SHIFT_RIGHT
    linkageType: ''
    returnType: void
    signature: "void bitset_container_set(bitset_container_t *bitset,\n                                        uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASM_SHIFT_RIGHT
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1964,1
    - Dst: ASM_SET_BIT_INC_WAS_CLEAR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1971
      start: 1959
    functionDepth: 0
    functionLinenumber: 1959
    functionLinenumberEnd: 1971
    functionName: roaring::internal::bitset_container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - ASM_SET_BIT_INC_WAS_CLEAR
    - ASM_SHIFT_RIGHT
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_add(bitset_container_t *bitset,\n                                        uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASM_SHIFT_RIGHT
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1980,1
    - Dst: ASM_CLEAR_BIT_DEC_WAS_SET
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1987
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1987
    functionName: roaring::internal::bitset_container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - ASM_CLEAR_BIT_DEC_WAS_SET
    - ASM_SHIFT_RIGHT
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_remove(bitset_container_t *bitset,\n                                           uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ASM_INPLACESHIFT_RIGHT
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:1994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 1996
      start: 1990
    functionDepth: 0
    functionLinenumber: 1990
    functionLinenumberEnd: 1996
    functionName: roaring::internal::bitset_container_get
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - ASM_INPLACESHIFT_RIGHT
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_get(const bitset_container_t *bitset,\n                                 uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2008
      start: 2001
    functionDepth: 0
    functionLinenumber: 2001
    functionLinenumberEnd: 2008
    functionName: roaring::internal::bitset_container_set
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bitset_container_set(bitset_container_t *bitset,\n                                        uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2031
      start: 2022
    functionDepth: 0
    functionLinenumber: 2022
    functionLinenumberEnd: 2031
    functionName: roaring::internal::bitset_container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_add(bitset_container_t *bitset,\n                                        uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2044
      start: 2035
    functionDepth: 0
    functionLinenumber: 2035
    functionLinenumberEnd: 2044
    functionName: roaring::internal::bitset_container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_remove(bitset_container_t *bitset,\n                                           uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2051
      start: 2047
    functionDepth: 0
    functionLinenumber: 2047
    functionLinenumberEnd: 2051
    functionName: roaring::internal::bitset_container_get
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_get(const bitset_container_t *bitset,\n                                 uint16_t
      pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2079,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - bitset
    - pos_start
    - pos_end
    argTypes:
    - bitset_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2083
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2083
    functionName: roaring::internal::bitset_container_get_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_get_range(const bitset_container_t *bitset,\n
      \                                             uint32_t pos_start,\n                                              uint32_t
      pos_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_get
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitset
    - pos
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2089
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2089
    functionName: roaring::internal::bitset_container_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 8
    functionsReached:
    - roaring::internal::bitset_container_get
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_contains(const bitset_container_t *bitset,\n
      \                                     uint16_t pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_get_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bitset
    - pos_start
    - pos_end
    argTypes:
    - bitset_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2098
      start: 2095
    functionDepth: 0
    functionLinenumber: 2095
    functionLinenumberEnd: 2098
    functionName: roaring::internal::bitset_container_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_get_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_contains_range(\n    const bitset_container_t
      *bitset, uint32_t pos_start, uint32_t pos_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 2105
      start: 2101
    functionDepth: 0
    functionLinenumber: 2101
    functionLinenumberEnd: 2105
    functionName: roaring::internal::bitset_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED bitset_container_cardinality(\n    const bitset_container_t
      *bitset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 2132
      start: 2123
    functionDepth: 0
    functionLinenumber: 2123
    functionLinenumberEnd: 2132
    functionName: roaring::internal::bitset_container_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitset_container_empty(const bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 2139
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2139
    functionName: roaring::internal::bitset_container_const_nonzero_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_empty
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_const_nonzero_cardinality(\n    const bitset_container_t
      *bitset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2285
    functionDepth: 0
    functionLinenumber: 2285
    functionLinenumberEnd: 2287
    functionName: roaring::internal::bitset_container_serialized_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t bitset_container_serialized_size_in_bytes(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - container
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 2329
      start: 2325
    functionDepth: 0
    functionLinenumber: 2325
    functionLinenumberEnd: 2329
    functionName: roaring::internal::bitset_container_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t bitset_container_size_in_bytes(\n    const bitset_container_t
      *container)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2440
    functionDepth: 0
    functionLinenumber: 2440
    functionLinenumberEnd: 2444
    functionName: roaring::internal::STRUCT_CONTAINER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STRUCT_CONTAINER(run_container_s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - run
    - index
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2477
      start: 2473
    functionDepth: 0
    functionLinenumber: 2473
    functionLinenumberEnd: 2477
    functionName: roaring::internal::recoverRoomAtIndex
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void recoverRoomAtIndex(run_container_t *run, uint16_t index)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - rle16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2498
      start: 2482
    functionDepth: 0
    functionLinenumber: 2482
    functionLinenumberEnd: 2498
    functionName: roaring::internal::interleavedBinarySearch
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t interleavedBinarySearch(const rle16_t *array, int32_t lenarray,\n
      \                                      uint16_t ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - array
    - lenarray
    - ikey
    argTypes:
    - rle16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2520
      start: 2503
    functionDepth: 0
    functionLinenumber: 2503
    functionLinenumberEnd: 2520
    functionName: roaring::internal::rle16_find_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t rle16_find_run(const rle16_t *array, int32_t lenarray,\n                                     uint16_t
      ikey)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - array
    - lenarray
    - key
    argTypes:
    - rle16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2546
      start: 2527
    functionDepth: 0
    functionLinenumber: 2527
    functionLinenumberEnd: 2546
    functionName: roaring::internal::rle16_count_less
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: int32_t
    signature: "int32_t rle16_count_less(const rle16_t *array, int32_t lenarray,\n
      \                                      uint16_t key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - array
    - lenarray
    - key
    argTypes:
    - rle16_t*
    - int32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2567
      start: 2548
    functionDepth: 0
    functionLinenumber: 2548
    functionLinenumberEnd: 2567
    functionName: roaring::internal::rle16_count_greater
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: int32_t
    signature: "int32_t rle16_count_greater(const rle16_t *array,\n                                          int32_t
      lenarray, uint16_t key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2584,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - run
    - index
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2588
      start: 2579
    functionDepth: 0
    functionLinenumber: 2579
    functionLinenumberEnd: 2588
    functionName: roaring::internal::makeRoomAtIndex
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_grow
    - memmove
    linkageType: ''
    returnType: void
    signature: void makeRoomAtIndex(run_container_t *run, uint16_t index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::recoverRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2599,1
    - Dst: roaring::internal::makeRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - run
    - pos
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2628
      start: 2594
    functionDepth: 0
    functionLinenumber: 2594
    functionLinenumberEnd: 2628
    functionName: roaring::internal::run_container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::recoverRoomAtIndex
    - roaring::internal::makeRoomAtIndex
    linkageType: ''
    returnType: bool
    signature: bool run_container_remove(run_container_t *run, uint16_t pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - run
    - pos
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2641
      start: 2631
    functionDepth: 0
    functionLinenumber: 2631
    functionLinenumberEnd: 2641
    functionName: roaring::internal::run_container_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_container_contains(const run_container_t *run, uint16_t pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - run
    - pos_start
    - pos_end
    argTypes:
    - run_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2674
      start: 2647
    functionDepth: 0
    functionLinenumber: 2647
    functionLinenumberEnd: 2674
    functionName: roaring::internal::run_container_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool run_container_contains_range(const run_container_t *run,\n                                                uint32_t
      pos_start,\n                                                uint32_t pos_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 2683
      start: 2680
    functionDepth: 0
    functionLinenumber: 2680
    functionLinenumberEnd: 2683
    functionName: roaring::internal::run_container_nonzero_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool run_container_nonzero_cardinality(\n    const run_container_t
      *run)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 2688
      start: 2686
    functionDepth: 0
    functionLinenumber: 2686
    functionLinenumberEnd: 2688
    functionName: roaring::internal::run_container_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_container_empty(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - run
    - vl
    - previousrl
    argTypes:
    - run_container_t*
    - rle16_t
    - rle16_t*
    constantsTouched: []
    func_position:
      end: 2717
      start: 2703
    functionDepth: 0
    functionLinenumber: 2703
    functionLinenumberEnd: 2717
    functionName: roaring::internal::run_container_append
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void run_container_append(run_container_t *run, rle16_t vl,\n                                        rle16_t
      *previousrl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - run
    - vl
    argTypes:
    - run_container_t*
    - rle16_t
    constantsTouched: []
    func_position:
      end: 2727
      start: 2722
    functionDepth: 0
    functionLinenumber: 2722
    functionLinenumberEnd: 2727
    functionName: roaring::internal::run_container_append_first
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: rle16_t
    signature: "rle16_t run_container_append_first(run_container_t *run,\n                                                 rle16_t
      vl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - run
    - val
    - previousrl
    argTypes:
    - run_container_t*
    - uint16_t
    - rle16_t*
    constantsTouched: []
    func_position:
      end: 2750
      start: 2738
    functionDepth: 0
    functionLinenumber: 2738
    functionLinenumberEnd: 2750
    functionName: roaring::internal::run_container_append_value
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - MAKE_RLE16
    linkageType: ''
    returnType: void
    signature: "void run_container_append_value(run_container_t *run,\n                                              uint16_t
      val,\n                                              rle16_t *previousrl)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - run
    - val
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2762
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2762
    functionName: roaring::internal::run_container_append_value_first
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - MAKE_RLE16
    linkageType: ''
    returnType: rle16_t
    signature: "rle16_t run_container_append_value_first(run_container_t *run,\n                                                       uint16_t
      val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 2769
      start: 2766
    functionDepth: 0
    functionLinenumber: 2766
    functionLinenumberEnd: 2769
    functionName: roaring::internal::run_container_is_full
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_container_is_full(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_runs
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 2833
      start: 2830
    functionDepth: 0
    functionLinenumber: 2830
    functionLinenumberEnd: 2833
    functionName: roaring::internal::run_container_serialized_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t run_container_serialized_size_in_bytes(int32_t num_runs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_serialized_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - container
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 2869
      start: 2865
    functionDepth: 0
    functionLinenumber: 2865
    functionLinenumberEnd: 2869
    functionName: roaring::internal::run_container_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - roaring::internal::run_container_serialized_size_in_bytes
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED run_container_size_in_bytes(\n    const run_container_t
      *container)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::memequals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 2882
      start: 2874
    functionDepth: 0
    functionLinenumber: 2874
    functionLinenumberEnd: 2882
    functionName: roaring::internal::run_container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::memequals
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED run_container_equals(const run_container_t *container1,\n
      \                                       const run_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2907,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - start
    - stop
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2915
      start: 2905
    functionDepth: 0
    functionLinenumber: 2905
    functionLinenumberEnd: 2915
    functionName: roaring::internal::run_container_create_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::run_container_append_first
    linkageType: ''
    returnType: run_container_t
    signature: "run_container_t *run_container_create_range(uint32_t start,\n                                                          uint32_t
      stop)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 2940
      start: 2937
    functionDepth: 0
    functionLinenumber: 2937
    functionLinenumberEnd: 2940
    functionName: roaring::internal::run_container_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t run_container_minimum(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 2946
      start: 2943
    functionDepth: 0
    functionLinenumber: 2943
    functionLinenumberEnd: 2946
    functionName: roaring::internal::run_container_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t run_container_maximum(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - arr
    - x
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 2976
      start: 2961
    functionDepth: 0
    functionLinenumber: 2961
    functionLinenumberEnd: 2976
    functionName: roaring::internal::run_container_index_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int run_container_index_equalorlarger(const run_container_t *arr,\n
      \                                            uint16_t x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::makeRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:2987,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:3000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - run
    - min
    - max
    - nruns_less
    - nruns_greater
    argTypes:
    - run_container_t*
    - uint32_t
    - uint32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 3005
      start: 2981
    functionDepth: 0
    functionLinenumber: 2981
    functionLinenumberEnd: 3005
    functionName: roaring::internal::run_container_add_range_nruns
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::makeRoomAtIndex
    - memmove
    linkageType: ''
    returnType: void
    signature: "void run_container_add_range_nruns(run_container_t *run,\n                                                 uint32_t
      min, uint32_t max,\n                                                 int32_t
      nruns_less,\n                                                 int32_t nruns_greater)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:3027,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:3032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - run
    - count
    - distance
    argTypes:
    - run_container_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 3035
      start: 3023
    functionDepth: 0
    functionLinenumber: 3023
    functionLinenumberEnd: 3035
    functionName: roaring::internal::run_container_shift_tail
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_grow
    - memmove
    linkageType: ''
    returnType: void
    signature: "void run_container_shift_tail(run_container_t *run, int32_t count,\n
      \                                           int32_t distance)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::makeRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:3051,1
    - Dst: roaring::internal::run_container_shift_tail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:3089,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - run
    - min
    - max
    argTypes:
    - run_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 3092
      start: 3040
    functionDepth: 0
    functionLinenumber: 3040
    functionLinenumberEnd: 3092
    functionName: roaring::internal::run_container_remove_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::makeRoomAtIndex
    - roaring::internal::run_container_shift_tail
    linkageType: ''
    returnType: void
    signature: "void run_container_remove_range(run_container_t *run,\n                                              uint32_t
      min, uint32_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4029
      start: 4025
    functionDepth: 0
    functionLinenumber: 4025
    functionLinenumberEnd: 4029
    functionName: roaring::internal::STRUCT_CONTAINER
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STRUCT_CONTAINER(shared_container_s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4062,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4063,1
    - Dst: const_CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - candidate_shared_container
    - type
    argTypes:
    - container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4068
      start: 4059
    functionDepth: 0
    functionLinenumber: 4059
    functionLinenumberEnd: 4068
    functionName: roaring::internal::container_unwrap_shared
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 36
    functionsReached:
    - assert
    - const_CAST_shared
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_unwrap_shared(\n    const container_t *candidate_shared_container,
      uint8_t *type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4074,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4075,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4080
      start: 4071
    functionDepth: 0
    functionLinenumber: 4071
    functionLinenumberEnd: 4080
    functionName: roaring::internal::container_mutable_unwrap_shared
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - CAST_shared
    - assert
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_mutable_unwrap_shared(container_t *c,\n                                                           uint8_t
      *type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4089
      start: 4083
    functionDepth: 0
    functionLinenumber: 4083
    functionLinenumberEnd: 4089
    functionName: roaring::internal::get_container_type
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - const_CAST_shared
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_container_type(const container_t *c, uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::shared_container_extract_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4102,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4106
      start: 4099
    functionDepth: 0
    functionLinenumber: 4099
    functionLinenumberEnd: 4106
    functionName: roaring::internal::get_writable_copy_if_shared
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 10
    functionsReached:
    - CAST_shared
    - roaring::internal::shared_container_extract_copy
    linkageType: ''
    returnType: container_t
    signature: "container_t *get_writable_copy_if_shared(container_t *c,\n                                                       uint8_t
      *type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4125,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4127,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4127,1
    - Dst: roaring::internal::bitset_container_from_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4130,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4130,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4133,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4139
      start: 4120
    functionDepth: 0
    functionLinenumber: 4120
    functionLinenumberEnd: 4139
    functionName: roaring::internal::container_to_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - CAST_bitset
    - assert
    - roaring::internal::bitset_container_from_run
    - CAST_array
    - CAST_run
    linkageType: ''
    returnType: bitset_container_t
    signature: "bitset_container_t *container_to_bitset(container_t *c,\n                                                      uint8_t
      typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4172,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4180,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4192
      start: 4162
    functionDepth: 0
    functionLinenumber: 4162
    functionLinenumberEnd: 4192
    functionName: roaring::internal::get_full_container_name
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - assert
    - const_CAST_shared
    linkageType: ''
    returnType: char
    signature: "char *get_full_container_name(const container_t *c,\n                                                  uint8_t
      typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4199,1
    - Dst: roaring::internal::bitset_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4202,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4202,1
    - Dst: roaring::internal::array_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4204,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4204,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4206,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4206,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4211
      start: 4197
    functionDepth: 0
    functionLinenumber: 4197
    functionLinenumberEnd: 4211
    functionName: roaring::internal::container_get_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_run
    - roaring::internal::bitset_container_cardinality
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - roaring::internal::run_container_cardinality
    - roaring::internal::array_container_cardinality
    linkageType: ''
    returnType: int
    signature: "int container_get_cardinality(const container_t *c,\n                                            uint8_t
      typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4217,1
    - Dst: roaring::internal::bitset_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4220,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4220,1
    - Dst: roaring::internal::array_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4223,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4223,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4226,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4226,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4231
      start: 4216
    functionDepth: 0
    functionLinenumber: 4216
    functionLinenumberEnd: 4231
    functionName: roaring::internal::container_is_full
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_run
    - roaring::internal::bitset_container_cardinality
    - roaring::internal::run_container_is_full
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - roaring::internal::array_container_cardinality
    linkageType: ''
    returnType: bool
    signature: bool container_is_full(const container_t *c, uint8_t typecode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_mutable_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4234,1
    - Dst: roaring::internal::array_container_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4239,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4239,1
    - Dst: roaring::internal::run_container_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4241,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4241,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4246
      start: 4233
    functionDepth: 0
    functionLinenumber: 4233
    functionLinenumberEnd: 4246
    functionName: roaring::internal::container_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_shrink_to_fit
    - roaring::internal::container_mutable_unwrap_shared
    - assert
    - CAST_array
    - roaring::internal::array_container_shrink_to_fit
    - CAST_run
    linkageType: ''
    returnType: int
    signature: int container_shrink_to_fit(container_t *c, uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4257,1
    - Dst: roaring::internal::array_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4261,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - range_start
    - range_end
    - result_type
    argTypes:
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4266
      start: 4254
    functionDepth: 0
    functionLinenumber: 4254
    functionLinenumberEnd: 4266
    functionName: roaring::internal::container_range_of_ones
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_create_range
    - assert
    - roaring::internal::array_container_create_range
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_range_of_ones(uint32_t range_start,\n                                                   uint32_t
      range_end,\n                                                   uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4274,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4282,1
    - Dst: roaring::internal::array_container_add_from_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4283,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4284,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4288,1
    - Dst: roaring::internal::bitset_container_add_from_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4289,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - type
    - min
    - max
    - step
    argTypes:
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 4293
      start: 4270
    functionDepth: 0
    functionLinenumber: 4270
    functionLinenumberEnd: 4293
    functionName: roaring::internal::container_from_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_container_add_from_range
    - assert
    - roaring::internal::array_container_add_from_range
    - roaring::internal::container_range_of_ones
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_from_range(uint8_t *type, uint32_t min,\n                                                uint32_t
      max, uint16_t step)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4300,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4304,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4305,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4307,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4308,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4317,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4317,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4320,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4325
      start: 4298
    functionDepth: 0
    functionLinenumber: 4298
    functionLinenumberEnd: 4325
    functionName: roaring::internal::container_repair_after_lazy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::array_container_from_bitset
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - roaring::internal::convert_run_to_efficient_container_and_free
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_repair_after_lazy(container_t *c,\n                                                       uint8_t
      *type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4337,1
    - Dst: roaring::internal::bitset_container_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4340,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4340,1
    - Dst: roaring::internal::array_container_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4342,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4342,1
    - Dst: roaring::internal::run_container_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4344,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4344,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - c
    - typecode
    - buf
    argTypes:
    - container_t*
    - uint8_t
    - char*
    constantsTouched: []
    func_position:
      end: 4349
      start: 4335
    functionDepth: 0
    functionLinenumber: 4335
    functionLinenumberEnd: 4349
    functionName: roaring::internal::container_write
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_write
    - roaring::internal::run_container_write
    - roaring::internal::array_container_write
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: int32_t
    signature: "int32_t container_write(const container_t *c, uint8_t typecode,\n
      \                                     char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4358,1
    - Dst: roaring::internal::bitset_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4361,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4361,1
    - Dst: roaring::internal::array_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4363,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4363,1
    - Dst: roaring::internal::run_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4365,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4365,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4370
      start: 4356
    functionDepth: 0
    functionLinenumber: 4356
    functionLinenumberEnd: 4370
    functionName: roaring::internal::container_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_size_in_bytes
    - roaring::internal::bitset_container_size_in_bytes
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring::internal::run_container_size_in_bytes
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: int32_t
    signature: "int32_t container_size_in_bytes(const container_t *c,\n                                              uint8_t
      typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4394,1
    - Dst: roaring::internal::bitset_container_const_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4397,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4398,1
    - Dst: roaring::internal::array_container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4400,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4400,1
    - Dst: roaring::internal::run_container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4402,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4402,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4407
      start: 4392
    functionDepth: 0
    functionLinenumber: 4392
    functionLinenumberEnd: 4407
    functionName: roaring::internal::container_nonzero_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_nonzero_cardinality
    - roaring::internal::bitset_container_const_nonzero_cardinality
    - roaring::internal::run_container_nonzero_cardinality
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_nonzero_cardinality(const container_t *c,\n                                                 uint8_t
      typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4422,1
    - Dst: roaring::internal::bitset_container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4425,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4426,1
    - Dst: roaring::internal::array_container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4428,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4428,1
    - Dst: roaring::internal::run_container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4431,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4431,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - output
    - c
    - typecode
    - base
    argTypes:
    - uint32_t*
    - container_t*
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 4437
      start: 4419
    functionDepth: 0
    functionLinenumber: 4419
    functionLinenumberEnd: 4437
    functionName: roaring::internal::container_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_to_uint32_array
    - roaring::internal::run_container_to_uint32_array
    - roaring::internal::bitset_container_to_uint32_array
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: int
    signature: "int container_to_uint32_array(uint32_t *output,\n                                            const
      container_t *c,\n                                            uint8_t typecode,
      uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4449,1
    - Dst: roaring::internal::bitset_container_set
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4452,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4452,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4456,1
    - Dst: roaring::internal::array_container_try_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4457,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4461,1
    - Dst: roaring::internal::bitset_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4462,1
    - Dst: roaring::internal::run_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4469,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4469,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 4
    argNames:
    - c
    - val
    - typecode
    - new_typecode
    argTypes:
    - container_t*
    - uint16_t
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4477
      start: 4445
    functionDepth: 0
    functionLinenumber: 4445
    functionLinenumberEnd: 4477
    functionName: roaring::internal::container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - roaring::internal::bitset_container_add
    - CAST_bitset
    - roaring::internal::bitset_container_set
    - roaring::internal::run_container_add
    - roaring::internal::array_container_try_add
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - CAST_array
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_add(\n    container_t *c, uint16_t val,\n    uint8_t
      typecode,  // !!! should be second argument?\n    uint8_t *new_typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4490,1
    - Dst: roaring::internal::bitset_container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4493,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4493,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4497,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4497,1
    - Dst: roaring::internal::array_container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4504,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4504,1
    - Dst: roaring::internal::run_container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4508,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4508,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 4
    argNames:
    - c
    - val
    - typecode
    - new_typecode
    argTypes:
    - container_t*
    - uint16_t
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4516
      start: 4486
    functionDepth: 0
    functionLinenumber: 4486
    functionLinenumberEnd: 4516
    functionName: roaring::internal::container_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - CAST_bitset
    - CAST_run
    - roaring::internal::bitset_container_remove
    - roaring::internal::array_container_from_bitset
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - CAST_array
    - roaring::internal::array_container_remove
    - roaring::internal::run_container_remove
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_remove(\n    container_t *c, uint16_t val,\n
      \   uint8_t typecode,  // !!! should be second argument?\n    uint8_t *new_typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4525,1
    - Dst: roaring::internal::bitset_container_get
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4528,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4528,1
    - Dst: roaring::internal::array_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4530,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4530,1
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4532,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4532,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - c
    - val
    - typecode
    argTypes:
    - container_t*
    - uint16_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4538
      start: 4521
    functionDepth: 0
    functionLinenumber: 4521
    functionLinenumberEnd: 4538
    functionName: roaring::internal::container_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_array
    - assert
    - roaring::internal::bitset_container_get
    - roaring::internal::container_unwrap_shared
    - roaring::internal::run_container_contains
    - roaring::internal::array_container_contains
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_contains(\n    const container_t *c, uint16_t val,\n
      \   uint8_t typecode  // !!! should be second argument?\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4548,1
    - Dst: roaring::internal::bitset_container_get_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4551,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4551,1
    - Dst: roaring::internal::array_container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4554,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4554,1
    - Dst: roaring::internal::run_container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4557,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4557,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - c
    - range_start
    - range_end
    - typecode
    argTypes:
    - container_t*
    - uint32_t
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4564
      start: 4544
    functionDepth: 0
    functionLinenumber: 4544
    functionLinenumberEnd: 4564
    functionName: roaring::internal::container_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_contains_range
    - roaring::internal::bitset_container_get_range
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring::internal::run_container_contains_range
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_contains_range(\n    const container_t *c, uint32_t
      range_start, uint32_t range_end,\n    uint8_t typecode  // !!! should be second
      argument?\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4572,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4573,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4574,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4575,1
    - Dst: roaring::internal::bitset_container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4576,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4576,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4577,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4579,1
    - Dst: roaring::internal::run_container_equals_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4580,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4580,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4581,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4583,1
    - Dst: roaring::internal::run_container_equals_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4584,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4584,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4585,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4587,1
    - Dst: roaring::internal::array_container_equal_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4589,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4589,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4590,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4592,1
    - Dst: roaring::internal::array_container_equal_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4594,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4594,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4595,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4597,1
    - Dst: roaring::internal::run_container_equals_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4598,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4598,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4599,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4601,1
    - Dst: roaring::internal::run_container_equals_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4602,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4602,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4603,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4605,1
    - Dst: roaring::internal::array_container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4606,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4606,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4607,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4609,1
    - Dst: roaring::internal::run_container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4610,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4610,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4610,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - c1
    - type1
    - c2
    - type2
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4617
      start: 4570
    functionDepth: 0
    functionLinenumber: 4570
    functionLinenumberEnd: 4617
    functionName: roaring::internal::container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_equals
    - roaring::internal::run_container_equals_array
    - roaring::internal::bitset_container_equals
    - roaring::internal::run_container_equals_bitset
    - roaring::internal::array_container_equals
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_equal_bitset
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_equals(const container_t *c1, uint8_t type1,\n                                    const
      container_t *c2, uint8_t type2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4625,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4626,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4627,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4628,1
    - Dst: roaring::internal::bitset_container_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4629,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4629,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4630,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4632,1
    - Dst: roaring::internal::bitset_container_is_subset_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4633,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4633,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4634,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4636,1
    - Dst: roaring::internal::run_container_is_subset_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4637,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4637,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4638,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4640,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4643,1
    - Dst: roaring::internal::array_container_is_subset_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4644,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4644,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4645,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4647,1
    - Dst: roaring::internal::array_container_is_subset_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4648,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4648,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4649,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4651,1
    - Dst: roaring::internal::run_container_is_subset_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4652,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4652,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4653,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4655,1
    - Dst: roaring::internal::array_container_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4656,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4656,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4657,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4659,1
    - Dst: roaring::internal::run_container_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4660,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4660,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4661,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - c1
    - type1
    - c2
    - type2
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4668
      start: 4623
    functionDepth: 0
    functionLinenumber: 4623
    functionLinenumberEnd: 4668
    functionName: roaring::internal::container_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_is_subset_run
    - roaring::internal::array_container_is_subset
    - roaring::internal::run_container_is_subset_array
    - roaring::internal::run_container_is_subset_bitset
    - roaring::internal::run_container_is_subset
    - roaring::internal::bitset_container_is_subset
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_is_subset_bitset
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - roaring::internal::array_container_is_subset_run
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_is_subset(const container_t *c1, uint8_t type1,\n                                       const
      container_t *c2, uint8_t type2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4680,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4681,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4683,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4684,1
    - Dst: roaring::internal::bitset_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4686,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4687,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4687,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4692,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4693,1
    - Dst: roaring::internal::array_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4694,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4695,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4695,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4695,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4699,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4700,1
    - Dst: roaring::internal::run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4701,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4701,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4701,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4702,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4703,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4703,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4706,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4707,1
    - Dst: roaring::internal::array_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4708,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4708,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4709,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4710,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4714,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4715,1
    - Dst: roaring::internal::array_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4717,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4717,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4718,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4719,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4722,1
    - Dst: roaring::internal::run_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4724,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4725,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4725,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4730,1
    - Dst: roaring::internal::run_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4732,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4733,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4733,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4738,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4739,1
    - Dst: roaring::internal::array_run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4741,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4742,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4742,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4742,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4745,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4746,1
    - Dst: roaring::internal::array_run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4748,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4749,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4749,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4749,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4757
      start: 4677
    functionDepth: 0
    functionLinenumber: 4677
    functionLinenumberEnd: 4757
    functionName: roaring::internal::container_and
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_intersection
    - roaring::internal::convert_run_to_efficient_container_and_free
    - roaring::internal::run_container_intersection
    - roaring::internal::run_container_create
    - CAST_run
    - roaring::internal::array_run_container_intersection
    - roaring::internal::array_bitset_container_intersection
    - assert
    - roaring::internal::run_bitset_container_intersection
    - CONTAINER_PAIR
    - roaring::internal::bitset_bitset_container_intersection
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - CAST_array
    - roaring::internal::array_container_create
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_and(const container_t *c1, uint8_t type1,\n
      \                                        const container_t *c2, uint8_t type2,\n
      \                                        uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4766,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4767,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4768,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4769,1
    - Dst: bitset_container_and_justcard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4770,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4770,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4771,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4773,1
    - Dst: roaring::internal::array_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4774,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4775,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4775,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4777,1
    - Dst: roaring::internal::run_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4778,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4778,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4779,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4781,1
    - Dst: roaring::internal::array_bitset_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4782,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4783,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4783,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4785,1
    - Dst: roaring::internal::array_bitset_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4786,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4787,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4787,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4789,1
    - Dst: roaring::internal::run_bitset_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4790,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4791,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4791,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4793,1
    - Dst: roaring::internal::run_bitset_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4794,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4795,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4795,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4797,1
    - Dst: roaring::internal::array_run_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4798,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4799,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4799,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4801,1
    - Dst: roaring::internal::array_run_container_intersection_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4802,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4803,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4803,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - c1
    - type1
    - c2
    - type2
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4810
      start: 4762
    functionDepth: 0
    functionLinenumber: 4762
    functionLinenumberEnd: 4810
    functionName: roaring::internal::container_and_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_run_container_intersection_cardinality
    - roaring::internal::array_container_intersection_cardinality
    - const_CAST_array
    - roaring::internal::run_bitset_container_intersection_cardinality
    - roaring::internal::array_bitset_container_intersection_cardinality
    - roaring::internal::run_container_intersection_cardinality
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - bitset_container_and_justcard
    - PAIR_CONTAINER_TYPES
    - const_CAST_run
    linkageType: ''
    returnType: int
    signature: "int container_and_cardinality(const container_t *c1,\n                                            uint8_t
      type1,\n                                            const container_t *c2,\n
      \                                           uint8_t type2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4817,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4818,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4819,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4820,1
    - Dst: roaring::internal::bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4821,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4821,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4822,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4824,1
    - Dst: roaring::internal::array_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4825,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4825,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4826,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4828,1
    - Dst: roaring::internal::run_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4829,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4829,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4830,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4832,1
    - Dst: roaring::internal::array_bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4833,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4833,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4834,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4836,1
    - Dst: roaring::internal::array_bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4837,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4837,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4838,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4840,1
    - Dst: roaring::internal::run_bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4841,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4841,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4842,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4844,1
    - Dst: roaring::internal::run_bitset_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4845,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4845,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4846,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4848,1
    - Dst: roaring::internal::array_run_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4849,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4849,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4850,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4852,1
    - Dst: roaring::internal::array_run_container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4853,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4853,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4854,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - c1
    - type1
    - c2
    - type2
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 4861
      start: 4815
    functionDepth: 0
    functionLinenumber: 4815
    functionLinenumberEnd: 4861
    functionName: roaring::internal::container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_run_container_intersect
    - roaring::internal::array_container_intersect
    - roaring::internal::array_bitset_container_intersect
    - assert
    - roaring::internal::run_bitset_container_intersect
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - roaring::internal::run_container_intersect
    - roaring::internal::bitset_container_intersect
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_intersect(const container_t *c1, uint8_t type1,\n                                       const
      container_t *c2, uint8_t type2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4875,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4876,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4878,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4879,1
    - Dst: roaring::internal::bitset_bitset_container_intersection_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4880,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4881,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4881,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4886,1
    - Dst: roaring::internal::array_container_intersection_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4887,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4887,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4888,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4892,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4893,1
    - Dst: roaring::internal::run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4894,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4894,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4894,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4895,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4898,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4898,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4901,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4903,1
    - Dst: roaring::internal::array_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4904,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4904,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4905,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4906,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4910,1
    - Dst: roaring::internal::array_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4912,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4913,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4913,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4914,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4917,1
    - Dst: roaring::internal::run_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4919,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4920,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4920,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4925,1
    - Dst: roaring::internal::run_bitset_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4927,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4928,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4928,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4933,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4934,1
    - Dst: roaring::internal::array_run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4936,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4937,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4937,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4937,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4940,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4941,1
    - Dst: roaring::internal::array_run_container_intersection
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4943,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4944,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4944,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4944,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 4952
      start: 4872
    functionDepth: 0
    functionLinenumber: 4872
    functionLinenumberEnd: 4952
    functionName: roaring::internal::container_iand
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_bitset_container_intersection_inplace
    - roaring::internal::run_container_create
    - roaring::internal::array_container_intersection_inplace
    - roaring::internal::convert_run_to_efficient_container_and_free
    - const_CAST_run
    - const_CAST_bitset
    - CAST_bitset
    - roaring::internal::array_run_container_intersection
    - roaring::internal::array_bitset_container_intersection
    - roaring::internal::get_writable_copy_if_shared
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::run_container_intersection
    - assert
    - roaring::internal::run_bitset_container_intersection
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - roaring::internal::array_container_create
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_iand(container_t *c1, uint8_t type1,\n                                          const
      container_t *c2, uint8_t type2,\n                                          uint8_t
      *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4962,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4963,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4965,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4966,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4967,1
    - Dst: bitset_container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4968,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4968,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4968,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4969,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4973,1
    - Dst: roaring::internal::array_array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4975,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4975,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4976,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4981,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4982,1
    - Dst: roaring::internal::run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4983,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4983,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4983,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4984,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4987,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4988,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4991,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4992,1
    - Dst: roaring::internal::array_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4993,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4993,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4994,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4995,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:4999,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5000,1
    - Dst: roaring::internal::array_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5001,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5001,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5002,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5003,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5007,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5008,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5008,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5009,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5011,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5011,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5011,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5014,1
    - Dst: roaring::internal::run_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5015,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5016,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5016,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5016,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5020,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5021,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5021,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5022,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5024,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5024,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5024,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5027,1
    - Dst: roaring::internal::run_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5028,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5029,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5029,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5029,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5033,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5034,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5035,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5035,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5035,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5036,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5037,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5038,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5041,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5042,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5043,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5043,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5043,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5044,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5045,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5046,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5050,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 65
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5054
      start: 4959
    functionDepth: 0
    functionLinenumber: 4959
    functionLinenumberEnd: 5054
    functionName: roaring::internal::container_or
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_bitset_container_union
    - roaring::internal::run_container_create
    - roaring::internal::run_container_is_full
    - roaring::internal::run_container_union
    - roaring::internal::convert_run_to_efficient_container_and_free
    - const_CAST_run
    - const_CAST_bitset
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_copy
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::array_array_container_union
    - roaring::internal::array_bitset_container_union
    - roaring::internal::array_run_container_union
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - bitset_container_or
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_or(const container_t *c1, uint8_t type1,\n
      \                                       const container_t *c2, uint8_t type2,\n
      \                                       uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5069,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5070,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5072,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5073,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5074,1
    - Dst: bitset_container_or_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5075,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5075,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5076,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5077,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5081,1
    - Dst: roaring::internal::array_array_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5083,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5083,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5084,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5089,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5090,1
    - Dst: roaring::internal::run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5091,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5091,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5091,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5092,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5095,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5096,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5099,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5100,1
    - Dst: roaring::internal::array_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5101,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5101,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5102,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5103,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5107,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5108,1
    - Dst: roaring::internal::array_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5109,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5109,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5110,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5111,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5115,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5116,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5116,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5117,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5119,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5119,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5119,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5122,1
    - Dst: roaring::internal::run_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5123,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5123,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5124,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5125,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5129,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5130,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5130,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5131,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5133,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5133,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5133,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5136,1
    - Dst: roaring::internal::run_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5137,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5137,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5138,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5139,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5143,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5144,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5145,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5145,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5145,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5146,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5152,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5153,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5154,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5154,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5154,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5155,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 65
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5166
      start: 5064
    functionDepth: 0
    functionLinenumber: 5064
    functionLinenumberEnd: 5166
    functionName: roaring::internal::container_lazy_or
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_create
    - roaring::internal::array_array_container_lazy_union
    - roaring::internal::run_container_is_full
    - roaring::internal::run_container_union
    - roaring::internal::convert_run_to_efficient_container_and_free
    - const_CAST_run
    - const_CAST_bitset
    - bitset_container_or_nocard
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_copy
    - roaring::internal::run_bitset_container_lazy_union
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::array_bitset_container_lazy_union
    - roaring::internal::array_run_container_union
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_lazy_or(const container_t *c1,\n                                             uint8_t
      type1,\n                                             const container_t *c2,\n
      \                                            uint8_t type2,\n                                             uint8_t
      *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5180,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5181,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5183,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5184,1
    - Dst: bitset_container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5185,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5185,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5185,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5186,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5188,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5189,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5197,1
    - Dst: roaring::internal::array_array_container_inplace_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5198,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5199,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5199,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5207,1
    - Dst: roaring::internal::run_container_union_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5208,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5208,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5208,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5209,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5209,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5212,1
    - Dst: roaring::internal::array_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5213,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5214,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5214,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5214,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5218,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5220,1
    - Dst: roaring::internal::array_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5222,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5222,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5223,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5224,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5227,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5228,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5228,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5229,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5231,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5231,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5231,1
    - Dst: roaring::internal::run_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5234,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5234,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5235,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5236,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5240,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5241,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5241,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5245,1
    - Dst: roaring::internal::run_bitset_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5246,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5247,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5247,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5247,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5251,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5252,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5253,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5253,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5253,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5254,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5255,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5256,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5259,1
    - Dst: roaring::internal::array_run_container_inplace_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5260,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5260,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5261,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5262,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5262,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 64
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5270
      start: 5177
    functionDepth: 0
    functionLinenumber: 5177
    functionLinenumberEnd: 5270
    functionName: roaring::internal::container_ior
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_union_inplace
    - roaring::internal::run_bitset_container_union
    - roaring::internal::run_container_create
    - roaring::internal::run_container_is_full
    - roaring::internal::convert_run_to_efficient_container_and_free
    - const_CAST_run
    - const_CAST_bitset
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_copy
    - roaring::internal::get_writable_copy_if_shared
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - roaring::internal::run_container_create_range
    - CAST_run
    - roaring::internal::array_bitset_container_union
    - roaring::internal::array_run_container_union
    - roaring::internal::array_array_container_inplace_union
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - roaring::internal::array_run_container_inplace_union
    - bitset_container_or
    - roaring::internal::convert_run_to_efficient_container
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_ior(container_t *c1, uint8_t type1,\n                                         const
      container_t *c2, uint8_t type2,\n                                         uint8_t
      *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5288,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5290,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5292,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5293,1
    - Dst: bitset_container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5296,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5296,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5296,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5297,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5299,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5300,1
    - Dst: bitset_container_or_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5305,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5305,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5306,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5306,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5312,1
    - Dst: roaring::internal::array_array_container_lazy_inplace_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5313,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5314,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5314,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5322,1
    - Dst: roaring::internal::run_container_union_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5323,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5323,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5323,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5325,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5325,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5328,1
    - Dst: roaring::internal::array_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5329,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5329,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5330,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5331,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5335,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5337,1
    - Dst: roaring::internal::array_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5339,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5339,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5340,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5341,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5344,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5345,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5345,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5346,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5348,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5348,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5348,1
    - Dst: roaring::internal::run_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5351,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5352,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5352,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5353,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5357,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5358,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5358,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5362,1
    - Dst: roaring::internal::run_bitset_container_lazy_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5363,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5363,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5364,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5365,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5369,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5370,1
    - Dst: roaring::internal::array_run_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5371,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5371,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5371,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5372,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5379,1
    - Dst: roaring::internal::array_run_container_inplace_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5380,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5380,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5381,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 66
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5393
      start: 5284
    functionDepth: 0
    functionLinenumber: 5284
    functionLinenumberEnd: 5393
    functionName: roaring::internal::container_lazy_ior
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_union_inplace
    - roaring::internal::run_container_create
    - roaring::internal::run_container_is_full
    - const_CAST_run
    - const_CAST_bitset
    - bitset_container_or_nocard
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_copy
    - roaring::internal::run_bitset_container_lazy_union
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - roaring::internal::run_container_create_range
    - CAST_run
    - roaring::internal::array_bitset_container_lazy_union
    - roaring::internal::array_run_container_union
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - roaring::internal::array_run_container_inplace_union
    - bitset_container_or
    - roaring::internal::array_array_container_lazy_inplace_union
    - roaring::internal::convert_run_to_efficient_container
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_lazy_ior(container_t *c1, uint8_t type1,\n
      \                                             const container_t *c2,\n                                              uint8_t
      type2,\n                                              uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5403,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5404,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5406,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5407,1
    - Dst: roaring::internal::bitset_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5409,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5409,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5410,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5415,1
    - Dst: roaring::internal::array_array_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5417,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5417,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5418,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5423,1
    - Dst: roaring::internal::run_run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5424,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5425,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5425,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5428,1
    - Dst: roaring::internal::array_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5430,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5430,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5431,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5436,1
    - Dst: roaring::internal::array_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5438,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5438,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5439,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5444,1
    - Dst: roaring::internal::run_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5446,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5446,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5447,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5452,1
    - Dst: roaring::internal::run_bitset_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5454,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5454,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5455,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5460,1
    - Dst: roaring::internal::array_run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5461,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5462,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5462,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5465,1
    - Dst: roaring::internal::array_run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5466,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5467,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5467,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5475
      start: 5400
    functionDepth: 0
    functionLinenumber: 5400
    functionLinenumberEnd: 5475
    functionName: roaring::internal::container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_bitset_container_xor
    - roaring::internal::array_array_container_xor
    - roaring::internal::array_bitset_container_xor
    - roaring::internal::array_run_container_xor
    - roaring::internal::run_run_container_xor
    - roaring::internal::bitset_bitset_container_xor
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_xor(const container_t *c1, uint8_t type1,\n
      \                                        const container_t *c2, uint8_t type2,\n
      \                                        uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5490,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5491,1
    - Dst: roaring::internal::container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5491,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5492,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5493,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5494,1
    - Dst: roaring::internal::bitset_container_offset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5498,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5498,1
    - Dst: roaring::internal::array_container_offset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5501,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5501,1
    - Dst: roaring::internal::run_container_offset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5504,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5504,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5507,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - c
    - type
    - lo
    - hi
    - offset
    argTypes:
    - container_t*
    - uint8_t
    - container_t**
    - container_t**
    - uint16_t
    constantsTouched: []
    func_position:
      end: 5511
      start: 5487
    functionDepth: 0
    functionLinenumber: 5487
    functionLinenumberEnd: 5511
    functionName: roaring::internal::container_add_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_offset
    - roaring::internal::container_nonzero_cardinality
    - assert
    - const_CAST_array
    - roaring::internal::bitset_container_offset
    - roaring::internal::run_container_offset
    - const_CAST_run
    linkageType: ''
    returnType: void
    signature: "void container_add_offset(const container_t *c, uint8_t type,\n                                        container_t
      **lo, container_t **hi,\n                                        uint16_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5526,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5527,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5529,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5530,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5531,1
    - Dst: bitset_container_xor_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5532,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5532,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5533,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5534,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5538,1
    - Dst: roaring::internal::array_array_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5540,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5540,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5541,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5546,1
    - Dst: roaring::internal::run_run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5548,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5549,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5549,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5552,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5553,1
    - Dst: roaring::internal::array_bitset_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5555,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5555,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5556,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5557,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5560,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5561,1
    - Dst: roaring::internal::array_bitset_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5563,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5563,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5564,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5565,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5568,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5569,1
    - Dst: roaring::internal::run_bitset_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5570,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5571,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5571,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5571,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5575,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5576,1
    - Dst: roaring::internal::run_bitset_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5577,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5578,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5578,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5578,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5582,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5583,1
    - Dst: roaring::internal::array_run_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5584,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5584,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5585,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5585,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5591,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5592,1
    - Dst: roaring::internal::array_run_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5593,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5593,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5594,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5594,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5605
      start: 5521
    functionDepth: 0
    functionLinenumber: 5521
    functionLinenumberEnd: 5605
    functionName: roaring::internal::container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_create
    - CAST_bitset
    - roaring::internal::run_run_container_xor
    - CAST_run
    - roaring::internal::array_bitset_container_lazy_xor
    - roaring::internal::bitset_container_create
    - bitset_container_xor_nocard
    - roaring::internal::run_bitset_container_lazy_xor
    - roaring::internal::array_array_container_lazy_xor
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - assert
    - const_CAST_array
    - PAIR_CONTAINER_TYPES
    - roaring::internal::array_run_container_lazy_xor
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_lazy_xor(const container_t *c1,\n                                              uint8_t
      type1,\n                                              const container_t *c2,\n
      \                                             uint8_t type2,\n                                              uint8_t
      *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5619,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5620,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5622,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5623,1
    - Dst: roaring::internal::bitset_bitset_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5624,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5625,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5625,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5630,1
    - Dst: roaring::internal::array_array_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5631,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5632,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5632,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5637,1
    - Dst: roaring::internal::run_run_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5638,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5639,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5639,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5642,1
    - Dst: roaring::internal::bitset_array_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5643,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5644,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5644,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5649,1
    - Dst: roaring::internal::array_bitset_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5650,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5651,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5651,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5656,1
    - Dst: roaring::internal::bitset_run_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5657,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5658,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5658,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5664,1
    - Dst: roaring::internal::run_bitset_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5665,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5666,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5666,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5671,1
    - Dst: roaring::internal::array_run_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5672,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5673,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5673,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5676,1
    - Dst: roaring::internal::run_array_container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5677,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5678,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5678,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5686
      start: 5616
    functionDepth: 0
    functionLinenumber: 5616
    functionLinenumberEnd: 5686
    functionName: roaring::internal::container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::array_run_container_ixor
    - const_CAST_run
    - const_CAST_bitset
    - roaring::internal::bitset_bitset_container_ixor
    - CAST_bitset
    - roaring::internal::run_array_container_ixor
    - roaring::internal::get_writable_copy_if_shared
    - CONTAINER_PAIR
    - roaring::internal::bitset_run_container_ixor
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::array_array_container_ixor
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - roaring::internal::run_bitset_container_ixor
    - roaring::internal::run_run_container_ixor
    - roaring::internal::array_bitset_container_ixor
    - roaring::internal::bitset_array_container_ixor
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_ixor(container_t *c1, uint8_t type1,\n                                          const
      container_t *c2, uint8_t type2,\n                                          uint8_t
      *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5704,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5706,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5707,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5708,1
    - Dst: bitset_container_xor_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5709,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5709,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5709,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5710,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5720,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5722,1
    - Dst: roaring::internal::container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5727
      start: 5700
    functionDepth: 0
    functionLinenumber: 5700
    functionLinenumberEnd: 5727
    functionName: roaring::internal::container_lazy_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::container_ixor
    - CAST_bitset
    - bitset_container_xor_nocard
    - assert
    - CONTAINER_PAIR
    - roaring::internal::container_unwrap_shared
    - PAIR_CONTAINER_TYPES
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_lazy_ixor(container_t *c1, uint8_t type1,\n
      \                                              const container_t *c2,\n                                               uint8_t
      type2,\n                                               uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5739,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5740,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5742,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5743,1
    - Dst: roaring::internal::bitset_bitset_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5745,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5745,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5746,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5751,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5752,1
    - Dst: roaring::internal::array_array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5753,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5754,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5754,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5754,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5758,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5759,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5759,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5760,1
    - Dst: roaring::internal::run_run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5764,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5765,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5765,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5768,1
    - Dst: roaring::internal::bitset_array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5770,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5770,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5771,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5776,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5777,1
    - Dst: roaring::internal::array_bitset_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5778,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5778,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5779,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5780,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5784,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5785,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5785,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5786,1
    - Dst: roaring::internal::bitset_run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5791,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5791,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5792,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5797,1
    - Dst: roaring::internal::run_bitset_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5799,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5799,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5800,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5805,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5806,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5806,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5807,1
    - Dst: roaring::internal::array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5811,1
    - Dst: roaring::internal::array_run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5812,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5812,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5812,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5813,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5817,1
    - Dst: roaring::internal::run_array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5818,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5819,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5819,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5823,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5827
      start: 5734
    functionDepth: 0
    functionLinenumber: 5734
    functionLinenumberEnd: 5827
    functionName: roaring::internal::container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::run_container_is_full
    - roaring::internal::array_run_container_andnot
    - roaring::internal::bitset_bitset_container_andnot
    - const_CAST_run
    - const_CAST_bitset
    - roaring::internal::bitset_array_container_andnot
    - roaring::internal::run_bitset_container_andnot
    - roaring::internal::bitset_run_container_andnot
    - CONTAINER_PAIR
    - PAIR_CONTAINER_TYPES
    - roaring::internal::array_bitset_container_andnot
    - roaring::internal::array_array_container_andnot
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - roaring::internal::run_array_container_andnot
    - roaring::internal::run_run_container_andnot
    - roaring::internal::array_container_create
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_andnot(const container_t *c1,\n                                            uint8_t
      type1,\n                                            const container_t *c2,\n
      \                                           uint8_t type2,\n                                            uint8_t
      *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5843,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5844,1
    - Dst: PAIR_CONTAINER_TYPES
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5846,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5847,1
    - Dst: roaring::internal::bitset_bitset_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5848,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5849,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5849,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5854,1
    - Dst: roaring::internal::array_array_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5855,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5855,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5855,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5859,1
    - Dst: roaring::internal::run_run_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5860,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5861,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5861,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5864,1
    - Dst: roaring::internal::bitset_array_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5865,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5866,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5866,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5871,1
    - Dst: roaring::internal::array_bitset_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5873,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5873,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5874,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5877,1
    - Dst: roaring::internal::bitset_run_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5878,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5879,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5879,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5884,1
    - Dst: roaring::internal::run_bitset_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5885,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5886,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5886,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5891,1
    - Dst: roaring::internal::array_run_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5893,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5893,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5893,1
    - Dst: CONTAINER_PAIR
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5896,1
    - Dst: roaring::internal::run_array_container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5897,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5898,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5898,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 5
    argNames:
    - c1
    - type1
    - c2
    - type2
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5906
      start: 5839
    functionDepth: 0
    functionLinenumber: 5839
    functionLinenumberEnd: 5906
    functionName: roaring::internal::container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_bitset_container_iandnot
    - roaring::internal::array_bitset_container_iandnot
    - roaring::internal::bitset_array_container_iandnot
    - const_CAST_run
    - const_CAST_bitset
    - roaring::internal::run_run_container_iandnot
    - CAST_bitset
    - roaring::internal::bitset_run_container_iandnot
    - roaring::internal::get_writable_copy_if_shared
    - CONTAINER_PAIR
    - roaring::internal::run_bitset_container_iandnot
    - PAIR_CONTAINER_TYPES
    - CAST_run
    - roaring::internal::array_run_container_iandnot
    - assert
    - roaring::internal::array_array_container_iandnot
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - CAST_array
    - roaring::internal::run_array_container_iandnot
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_iandnot(container_t *c1, uint8_t type1,\n                                             const
      container_t *c2,\n                                             uint8_t type2,\n
      \                                            uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5916,1
    - Dst: roaring::internal::bitset_container_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5919,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5919,1
    - Dst: roaring::internal::array_container_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5922,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5922,1
    - Dst: roaring::internal::run_container_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5925,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5925,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5928,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - c
    - type
    - base
    - iterator
    - ptr
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 5934
      start: 5913
    functionDepth: 0
    functionLinenumber: 5913
    functionLinenumberEnd: 5934
    functionName: roaring::internal::container_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_iterate
    - roaring::internal::bitset_container_iterate
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - roaring::internal::array_container_iterate
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_iterate(const container_t *c, uint8_t type,\n                                     uint32_t
      base, roaring_iterator iterator,\n                                     void
      *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5940,1
    - Dst: roaring::internal::bitset_container_iterate64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5943,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5943,1
    - Dst: roaring::internal::array_container_iterate64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5946,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5946,1
    - Dst: roaring::internal::run_container_iterate64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5949,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5949,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5952,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 6
    argNames:
    - c
    - type
    - base
    - iterator
    - high_bits
    - ptr
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 5958
      start: 5936
    functionDepth: 0
    functionLinenumber: 5936
    functionLinenumberEnd: 5958
    functionName: roaring::internal::container_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_iterate64
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_iterate64
    - const_CAST_array
    - roaring::internal::bitset_container_iterate64
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_iterate64(const container_t *c, uint8_t type,\n                                       uint32_t
      base,\n                                       roaring_iterator64 iterator,\n
      \                                      uint64_t high_bits, void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5962,1
    - Dst: roaring::internal::bitset_container_negation
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5967,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5967,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5972,1
    - Dst: roaring::internal::array_container_negation
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5974,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5974,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5974,1
    - Dst: roaring::internal::run_container_negation
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5978,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5978,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5982,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - c
    - type
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 5988
      start: 5960
    functionDepth: 0
    functionLinenumber: 5960
    functionLinenumberEnd: 5988
    functionName: roaring::internal::container_not
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_negation
    - roaring::internal::run_container_negation
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - roaring::internal::bitset_container_negation
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_not(const container_t *c, uint8_t type,\n                                         uint8_t
      *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:5995,1
    - Dst: roaring::internal::bitset_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6000,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6000,1
    - Dst: roaring::internal::array_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6007,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6007,1
    - Dst: roaring::internal::run_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6013,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6014,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6018,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 5
    argNames:
    - c
    - type
    - range_start
    - range_end
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6024
      start: 5990
    functionDepth: 0
    functionLinenumber: 5990
    functionLinenumberEnd: 6024
    functionName: roaring::internal::container_not_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_negation_range
    - assert
    - roaring::internal::bitset_container_negation_range
    - roaring::internal::array_container_negation_range
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_not_range(const container_t *c,\n                                               uint8_t
      type,\n                                               uint32_t range_start,\n
      \                                              uint32_t range_end,\n                                               uint8_t
      *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6028,1
    - Dst: roaring::internal::bitset_container_negation_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6033,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6033,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6039,1
    - Dst: roaring::internal::array_container_negation
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6041,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6041,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6041,1
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6042,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6042,1
    - Dst: roaring::internal::run_container_negation_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6046,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6046,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6050,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - c
    - type
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6056
      start: 6026
    functionDepth: 0
    functionLinenumber: 6026
    functionLinenumberEnd: 6056
    functionName: roaring::internal::container_inot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_negation_inplace
    - roaring::internal::array_container_negation
    - CAST_bitset
    - CAST_run
    - roaring::internal::bitset_container_create
    - roaring::internal::run_container_negation_inplace
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - CAST_array
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_inot(container_t *c, uint8_t type,\n                                          uint8_t
      *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6062,1
    - Dst: roaring::internal::bitset_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6066,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6067,1
    - Dst: roaring::internal::array_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6072,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6073,1
    - Dst: roaring::internal::run_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6078,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6079,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6083,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 5
    argNames:
    - c
    - type
    - range_start
    - range_end
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6089
      start: 6058
    functionDepth: 0
    functionLinenumber: 6058
    functionLinenumberEnd: 6089
    functionName: roaring::internal::container_inot_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_negation_range_inplace
    - CAST_bitset
    - roaring::internal::bitset_container_negation_range_inplace
    - roaring::internal::run_container_negation_range_inplace
    - assert
    - roaring::internal::get_writable_copy_if_shared
    - CAST_array
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_inot_range(container_t *c, uint8_t type,\n
      \                                               uint32_t range_start,\n                                                uint32_t
      range_end,\n                                                uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6102,1
    - Dst: roaring::internal::bitset_container_select
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6105,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6105,1
    - Dst: roaring::internal::array_container_select
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6108,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6108,1
    - Dst: roaring::internal::run_container_select
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6111,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6111,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6114,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - c
    - type
    - start_rank
    - rank
    - element
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 6120
      start: 6099
    functionDepth: 0
    functionLinenumber: 6099
    functionLinenumberEnd: 6120
    functionName: roaring::internal::container_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_run
    - const_CAST_array
    - roaring::internal::run_container_select
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_select
    - roaring::internal::bitset_container_select
    linkageType: ''
    returnType: bool
    signature: "bool container_select(const container_t *c, uint8_t type,\n                                    uint32_t
      *start_rank, uint32_t rank,\n                                    uint32_t *element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6123,1
    - Dst: roaring::internal::bitset_container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6126,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6126,1
    - Dst: roaring::internal::array_container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6128,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6128,1
    - Dst: roaring::internal::run_container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6130,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6130,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6132,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 6138
      start: 6122
    functionDepth: 0
    functionLinenumber: 6122
    functionLinenumberEnd: 6138
    functionName: roaring::internal::container_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_maximum
    - roaring::internal::bitset_container_maximum
    - roaring::internal::run_container_maximum
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t container_maximum(const container_t *c, uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6141,1
    - Dst: roaring::internal::bitset_container_minimum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6144,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6144,1
    - Dst: roaring::internal::array_container_minimum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6146,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6146,1
    - Dst: roaring::internal::run_container_minimum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6148,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6148,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6150,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 6156
      start: 6140
    functionDepth: 0
    functionLinenumber: 6140
    functionLinenumberEnd: 6156
    functionName: roaring::internal::container_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_minimum
    - roaring::internal::array_container_minimum
    - roaring::internal::bitset_container_minimum
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t container_minimum(const container_t *c, uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6161,1
    - Dst: roaring::internal::bitset_container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6164,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6164,1
    - Dst: roaring::internal::array_container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6166,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6166,1
    - Dst: roaring::internal::run_container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6168,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6168,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6170,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - c
    - type
    - x
    argTypes:
    - container_t*
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 6176
      start: 6159
    functionDepth: 0
    functionLinenumber: 6159
    functionLinenumberEnd: 6176
    functionName: roaring::internal::container_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_rank
    - roaring::internal::run_container_rank
    - assert
    - roaring::internal::array_container_rank
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: int
    signature: "int container_rank(const container_t *c, uint8_t type,\n                                 uint16_t
      x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6183,1
    - Dst: roaring::internal::bitset_container_rank_many
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6186,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6186,1
    - Dst: roaring::internal::array_container_rank_many
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6189,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6189,1
    - Dst: roaring::internal::run_container_rank_many
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6192,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6192,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6195,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 6
    argNames:
    - c
    - type
    - start_rank
    - begin
    - end
    - ans
    argTypes:
    - container_t*
    - uint8_t
    - uint64_t
    - uint32_t*
    - uint32_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 6201
      start: 6179
    functionDepth: 1
    functionLinenumber: 6179
    functionLinenumberEnd: 6201
    functionName: roaring::internal::container_rank_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::run_container_rank_many
    - roaring::internal::array_container_rank_many
    - roaring::internal::bitset_container_rank_many
    - assert
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t container_rank_many(const container_t *c, uint8_t type,\n
      \                                          uint64_t start_rank,\n                                           const
      uint32_t *begin,\n                                           const uint32_t
      *end, uint64_t *ans)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6206,1
    - Dst: roaring::internal::bitset_container_get_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6209,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6209,1
    - Dst: roaring::internal::array_container_get_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6211,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6211,1
    - Dst: roaring::internal::run_container_get_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6213,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6213,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6215,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - c
    - type
    - x
    argTypes:
    - container_t*
    - uint8_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 6221
      start: 6204
    functionDepth: 1
    functionLinenumber: 6204
    functionLinenumberEnd: 6221
    functionName: roaring::internal::container_get_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_get_index
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_get_index
    - const_CAST_array
    - roaring::internal::run_container_get_index
    - const_CAST_run
    linkageType: ''
    returnType: int
    signature: "int container_get_index(const container_t *c, uint8_t type,\n                                      uint16_t
      x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6237,1
    - Dst: roaring::internal::bitset_lenrange_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6243,1
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6245,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6247,1
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6247,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6250,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6256,1
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6266,1
    - Dst: roaring::internal::run_container_create_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6268,1
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6268,1
    - Dst: roaring::internal::array_container_add_range_nvals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6271,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6276,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6277,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6283,1
    - Dst: roaring::internal::run_container_add_range_nruns
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6296,1
    - Dst: roaring::internal::container_from_run_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 5
    argNames:
    - c
    - type
    - min
    - max
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6307
      start: 6231
    functionDepth: 0
    functionLinenumber: 6231
    functionLinenumberEnd: 6307
    functionName: roaring::internal::container_add_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_lenrange_cardinality
    - roaring::internal::bitset_container_from_array
    - CAST_bitset
    - roaring::internal::array_container_add_range_nvals
    - roaring::internal::bitset_set_lenrange
    - roaring::internal::run_container_add_range_nruns
    - INT32_C
    - roaring::internal::container_from_run_range
    - CAST_array
    - roaring::internal::run_container_create_range
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_add_range(container_t *c, uint8_t type,\n                                               uint32_t
      min, uint32_t max,\n                                               uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6325,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6335,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6337,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6340,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6346,1
    - Dst: roaring::internal::array_container_remove_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6359,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6365,1
    - Dst: roaring::internal::run_container_minimum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6370,1
    - Dst: roaring::internal::run_container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6371,1
    - Dst: roaring::internal::run_container_remove_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6375,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 5
    argNames:
    - c
    - type
    - min
    - max
    - result_type
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6381
      start: 6320
    functionDepth: 0
    functionLinenumber: 6320
    functionLinenumberEnd: 6381
    functionName: roaring::internal::container_remove_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - CAST_bitset
    - roaring::internal::run_container_minimum
    - roaring::internal::array_container_remove_range
    - roaring::internal::run_container_maximum
    - roaring::internal::run_container_remove_range
    - roaring::internal::array_container_from_bitset
    - roaring::internal::convert_run_to_efficient_container
    - CAST_array
    - roaring::internal::bitset_reset_range
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_remove_range(container_t *c, uint8_t type,\n
      \                                                 uint32_t min, uint32_t max,\n
      \                                                 uint8_t *result_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::binarySearch
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ra
    - x
    argTypes:
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 6536
      start: 6533
    functionDepth: 0
    functionLinenumber: 6533
    functionLinenumberEnd: 6536
    functionName: roaring::internal::ra_get_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::binarySearch
    linkageType: ''
    returnType: int32_t
    signature: int32_t ra_get_index(const roaring_array_t *ra, uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ra
    - i
    - typecode
    argTypes:
    - roaring_array_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 6545
      start: 6541
    functionDepth: 0
    functionLinenumber: 6541
    functionLinenumberEnd: 6545
    functionName: roaring::internal::ra_get_container_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: container_t
    signature: "container_t *ra_get_container_at_index(const roaring_array_t *ra,\n
      \                                             uint16_t i, uint8_t *typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ra
    - i
    argTypes:
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 6552
      start: 6550
    functionDepth: 0
    functionLinenumber: 6550
    functionLinenumberEnd: 6552
    functionName: roaring::internal::ra_get_key_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ra_get_key_at_index(const roaring_array_t *ra, uint16_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ra
    - i
    - c
    - typecode
    argTypes:
    - roaring_array_t*
    - int32_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 6619
      start: 6614
    functionDepth: 0
    functionLinenumber: 6614
    functionLinenumberEnd: 6619
    functionName: roaring::internal::ra_set_container_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void ra_set_container_at_index(const roaring_array_t *ra, int32_t
      i,\n                                      container_t *c, uint8_t typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 6631
      start: 6631
    functionDepth: 0
    functionLinenumber: 6631
    functionLinenumberEnd: 6631
    functionName: roaring::internal::ra_get_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t ra_get_size(const roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ra
    - x
    - pos
    argTypes:
    - roaring_array_t*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 6636
      start: 6633
    functionDepth: 0
    functionLinenumber: 6633
    functionLinenumberEnd: 6636
    functionName: roaring::internal::ra_advance_until
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::advanceUntil
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ra_advance_until(const roaring_array_t *ra, uint16_t x,\n
      \                                      int32_t pos)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ra
    - i
    - key
    - c
    - typecode
    argTypes:
    - roaring_array_t*
    - int32_t
    - uint16_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 6651
      start: 6642
    functionDepth: 0
    functionLinenumber: 6642
    functionLinenumberEnd: 6651
    functionName: roaring::internal::ra_replace_key_and_container_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void ra_replace_key_and_container_at_index(roaring_array_t *ra,\n
      \                                                 int32_t i, uint16_t key,\n
      \                                                 container_t *c,\n                                                  uint8_t
      typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6712,1
    - Dst: roaring::internal::get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:6714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ra
    - i
    argTypes:
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 6715
      start: 6710
    functionDepth: 0
    functionLinenumber: 6710
    functionLinenumberEnd: 6715
    functionName: roaring::internal::ra_unshare_container_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - assert
    - roaring::internal::get_writable_copy_if_shared
    linkageType: ''
    returnType: void
    signature: "void ra_unshare_container_at_index(roaring_array_t *ra,\n                                                 uint16_t
      i)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7349,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7350,1
    - Dst: _mm_cmpestrm
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7352,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7356,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7357,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7358,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7359,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7365,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7370,1
    - Dst: _mm_cmpistrm
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7375,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7380,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7381,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7382,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7383,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7389,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7394,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 5
    argNames:
    - A
    - s_a
    - B
    - s_b
    - C
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 7414
      start: 7338
    functionDepth: 0
    functionLinenumber: 7338
    functionLinenumberEnd: 7414
    functionName: roaring::internal::intersect_vector16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - _mm_loadu_si128
    - _mm_storeu_si128
    - _mm_shuffle_epi8
    - _mm_cmpestrm
    - _mm_popcnt_u32
    - _mm_lddqu_si128
    - _mm_cmpistrm
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 intersect_vector16(const uint16_t *__restrict__
      A, size_t s_a,\n                           const uint16_t *__restrict__ B, size_t
      s_b,\n                           uint16_t *C)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7425,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7426,1
    - Dst: _mm256_cvtepu16_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7426,1
    - Dst: _mm256_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7427,1
    - Dst: _mm256_storeu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7428,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - vout
    - array
    - cardinality
    - base
    argTypes:
    - void*
    - uint16_t*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 7438
      start: 7416
    functionDepth: 0
    functionLinenumber: 7416
    functionLinenumberEnd: 7438
    functionName: roaring::internal::array_container_to_uint32_array_vector16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm256_set1_epi32
    - _mm_loadu_si128
    - memcpy
    - _mm256_add_epi32
    - _mm256_cvtepu16_epi32
    - _mm256_storeu_si256
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED array_container_to_uint32_array_vector16(void *vout,
      const uint16_t *array,\n                                             size_t
      cardinality,\n                                             uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7449,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7450,1
    - Dst: _mm_setzero_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7451,1
    - Dst: _mm_cmpestrm
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7454,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7458,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7459,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7460,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7461,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7465,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7466,1
    - Dst: _mm_setzero_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7466,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7471,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7476,1
    - Dst: _mm_cmpistrm
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7481,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7486,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7487,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7488,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7489,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7493,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7494,1
    - Dst: _mm_setzero_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7494,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7499,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7504,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 4
    argNames:
    - A
    - s_a
    - B
    - s_b
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 7532
      start: 7440
    functionDepth: 0
    functionLinenumber: 7440
    functionLinenumberEnd: 7532
    functionName: roaring::internal::intersect_vector16_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm_loadu_si128
    - _mm_storeu_si128
    - _mm_shuffle_epi8
    - _mm_cmpestrm
    - _mm_setzero_si128
    - _mm_popcnt_u32
    - _mm_lddqu_si128
    - _mm_cmpistrm
    linkageType: ''
    returnType: int32_t
    signature: "int32_t intersect_vector16_inplace(uint16_t *__restrict__ A, size_t
      s_a,\n                                   const uint16_t *__restrict__ B, size_t
      s_b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7547,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7548,1
    - Dst: _mm_cmpestrm
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7550,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7554,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7560,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7565,1
    - Dst: _mm_cmpistrm
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7570,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7574,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7580,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7585,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 4
    argNames:
    - A
    - s_a
    - B
    - s_b
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 7604
      start: 7533
    functionDepth: 0
    functionLinenumber: 7533
    functionLinenumberEnd: 7604
    functionName: roaring::internal::intersect_vector16_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - _mm_popcnt_u32
    - _mm_lddqu_si128
    - _mm_cmpestrm
    - _mm_cmpistrm
    linkageType: ''
    returnType: CROARING_UNTARGET_AVX2
    signature: "CROARING_UNTARGET_AVX2 intersect_vector16_cardinality(const uint16_t
      *__restrict__ A,\n                                       size_t s_a,\n                                       const
      uint16_t *__restrict__ B,\n                                       size_t s_b)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7618,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7648,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7649,1
    - Dst: _mm_setzero_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7652,1
    - Dst: _mm_cmpistrm
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7660,1
    - Dst: _mm_or_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7664,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7675,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7677,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7678,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7679,1
    - Dst: _mm_setzero_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7684,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7685,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7691,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7700,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7701,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7702,1
    - Dst: _mm_cmpistrm
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7703,1
    - Dst: _mm_or_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7707,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7710,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7712,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7713,1
    - Dst: _mm_popcnt_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7714,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7736,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7738,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 5
    argNames:
    - A
    - s_a
    - B
    - s_b
    - C
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 7750
      start: 7605
    functionDepth: 0
    functionLinenumber: 7605
    functionLinenumberEnd: 7750
    functionName: roaring::internal::difference_vector16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memset
    - _mm_loadu_si128
    - memcpy
    - _mm_storeu_si128
    - _mm_or_si128
    - _mm_shuffle_epi8
    - _mm_setzero_si128
    - memmove
    - assert
    - _mm_popcnt_u32
    - _mm_lddqu_si128
    - _mm_cmpistrm
    linkageType: ''
    returnType: CROARING_UNTARGET_AVX2
    signature: "CROARING_UNTARGET_AVX2 difference_vector16(const uint16_t *__restrict__
      A, size_t s_a,\n                            const uint16_t *__restrict__ B,
      size_t s_b,\n                            uint16_t *C)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 10
    argNames:
    - array
    - n
    - target1
    - target2
    - target3
    - target4
    - index1
    - index2
    - index3
    - index4
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - int32_t*
    - int32_t*
    - int32_t*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 7783
      start: 7762
    functionDepth: 0
    functionLinenumber: 7762
    functionLinenumberEnd: 7783
    functionName: roaring::internal::binarySearch4
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void binarySearch4(const uint16_t *array, int32_t n, uint16_t target1,\n
      \                         uint16_t target2, uint16_t target3, uint16_t target4,\n
      \                         int32_t *index1, int32_t *index2, int32_t *index3,\n
      \                         int32_t *index4)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - array
    - n
    - target1
    - target2
    - index1
    - index2
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t
    - uint16_t
    - int32_t*
    - int32_t*
    constantsTouched: []
    func_position:
      end: 7806
      start: 7793
    functionDepth: 0
    functionLinenumber: 7793
    functionLinenumberEnd: 7806
    functionName: roaring::internal::binarySearch2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void binarySearch2(const uint16_t *array, int32_t n, uint16_t target1,\n
      \                         uint16_t target2, int32_t *index1, int32_t *index2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::binarySearch4
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7828,1
    - Dst: roaring::internal::binarySearch2
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7849,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 5
    argNames:
    - _small
    - size_s
    - large
    - size_l
    - buffer
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 7867
      start: 7814
    functionDepth: 0
    functionLinenumber: 7814
    functionLinenumberEnd: 7867
    functionName: roaring::internal::intersect_skewed_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::binarySearch4
    - roaring::internal::binarySearch2
    linkageType: ''
    returnType: int32_t
    signature: "int32_t intersect_skewed_uint16(const uint16_t *_small, size_t size_s,\n
      \                               const uint16_t *large, size_t size_l,\n                                uint16_t
      *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7884,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7896,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 4
    argNames:
    - _small
    - size_s
    - large
    - size_l
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 7903
      start: 7870
    functionDepth: 0
    functionLinenumber: 7870
    functionLinenumberEnd: 7903
    functionName: roaring::internal::intersect_skewed_uint16_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::advanceUntil
    linkageType: ''
    returnType: int32_t
    signature: "int32_t intersect_skewed_uint16_cardinality(const uint16_t *_small,\n
      \                                           size_t size_s,\n                                            const
      uint16_t *large,\n                                            size_t size_l)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:7917,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - _small
    - size_s
    - large
    - size_l
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 7930
      start: 7905
    functionDepth: 0
    functionLinenumber: 7905
    functionLinenumberEnd: 7930
    functionName: roaring::internal::intersect_skewed_uint16_nonempty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::advanceUntil
    linkageType: ''
    returnType: bool
    signature: "bool intersect_skewed_uint16_nonempty(const uint16_t *_small, size_t
      size_s,\n                                      const uint16_t *large, size_t
      size_l)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - A
    - lenA
    - B
    - lenB
    - out
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 7958
      start: 7935
    functionDepth: 0
    functionLinenumber: 7935
    functionLinenumberEnd: 7958
    functionName: roaring::internal::intersect_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t intersect_uint16(const uint16_t *A, const size_t lenA,\n                         const
      uint16_t *B, const size_t lenB, uint16_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - A
    - lenA
    - B
    - lenB
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 7983
      start: 7960
    functionDepth: 0
    functionLinenumber: 7960
    functionLinenumberEnd: 7983
    functionName: roaring::internal::intersect_uint16_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: "int32_t intersect_uint16_cardinality(const uint16_t *A, const size_t
      lenA,\n                                     const uint16_t *B, const size_t
      lenB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - A
    - lenA
    - B
    - lenB
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 8006
      start: 7985
    functionDepth: 0
    functionLinenumber: 7985
    functionLinenumberEnd: 8006
    functionName: roaring::internal::intersect_uint16_nonempty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool intersect_uint16_nonempty(const uint16_t *A, const size_t lenA,\n
      \                              const uint16_t *B, const size_t lenB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 5
    argNames:
    - A
    - lenA
    - B
    - lenB
    - out
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t*
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 8035
      start: 8011
    functionDepth: 0
    functionLinenumber: 8011
    functionLinenumberEnd: 8035
    functionName: roaring::internal::intersection_uint32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t intersection_uint32(const uint32_t *A, const size_t lenA,\n
      \                          const uint32_t *B, const size_t lenB,\n                           uint32_t
      *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - A
    - lenA
    - B
    - lenB
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 8060
      start: 8037
    functionDepth: 0
    functionLinenumber: 8037
    functionLinenumberEnd: 8060
    functionName: roaring::internal::intersection_uint32_card
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t intersection_uint32_card(const uint32_t *A, const size_t lenA,\n
      \                               const uint32_t *B, const size_t lenB)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8070,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8074,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8103,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8107,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 5
    argNames:
    - set_1
    - size_1
    - set_2
    - size_2
    - buffer
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8112
      start: 8065
    functionDepth: 0
    functionLinenumber: 8065
    functionLinenumberEnd: 8112
    functionName: roaring::internal::union_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - memmove
    linkageType: ''
    returnType: size_t
    signature: "size_t union_uint16(const uint16_t *set_1, size_t size_1, const uint16_t
      *set_2,\n                    size_t size_2, uint16_t *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8120,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8140,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8149,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - a1
    - length1
    - a2
    - length2
    - a_out
    argTypes:
    - uint16_t*
    - int
    - uint16_t*
    - int
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8157
      start: 8114
    functionDepth: 0
    functionLinenumber: 8114
    functionLinenumberEnd: 8157
    functionName: roaring::internal::difference_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memmove
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int difference_uint16(const uint16_t *a1, int length1, const uint16_t
      *a2,\n                      int length2, uint16_t *a_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8180,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - array_1
    - card_1
    - array_2
    - card_2
    - out
    argTypes:
    - uint16_t*
    - int32_t
    - uint16_t*
    - int32_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8188
      start: 8159
    functionDepth: 0
    functionLinenumber: 8159
    functionLinenumberEnd: 8188
    functionName: roaring::internal::xor_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t xor_uint16(const uint16_t *array_1, int32_t card_1,\n                   const
      uint16_t *array_2, int32_t card_2, uint16_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8207,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8208,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8209,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8210,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8211,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8212,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8213,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8214,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8215,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8216,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8217,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8218,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8219,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8220,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8221,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8222,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8223,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8224,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8225,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8226,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8227,1
    - Dst: _mm_min_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8228,1
    - Dst: _mm_max_epu16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8229,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 4
    argNames:
    - vInput1
    - vInput2
    - vecMin
    - vecMax
    argTypes:
    - __m128i*
    - __m128i*
    - __m128i*
    - __m128i*
    constantsTouched: []
    func_position:
      end: 8231
      start: 8196
    functionDepth: 0
    functionLinenumber: 8196
    functionLinenumberEnd: 8231
    functionName: roaring::internal::sse_merge
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - _mm_alignr_epi8
    - _mm_min_epu16
    - _mm_max_epu16
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 sse_merge(const __m128i *vInput1,\n                             const
      __m128i *vInput2,              // input 1 & 2\n                             __m128i
      *vecMin, __m128i *vecMax)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8581,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8586,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8587,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - old
    - newval
    - output
    argTypes:
    - __m128i
    - __m128i
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8590
      start: 8577
    functionDepth: 0
    functionLinenumber: 8577
    functionLinenumberEnd: 8590
    functionName: roaring::internal::store_unique
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - _mm_alignr_epi8
    - _mm_shuffle_epi8
    - _mm_lddqu_si128
    - _mm_storeu_si128
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: CROARING_TARGET_AVX2 store_unique(__m128i old, __m128i newval, uint16_t
      *output)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - out
    - len
    argTypes:
    - uint16_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 8603
      start: 8591
    functionDepth: 0
    functionLinenumber: 8591
    functionLinenumberEnd: 8603
    functionName: roaring::internal::unique
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CROARING_UNTARGET_AVX2
    signature: CROARING_UNTARGET_AVX2 unique(uint16_t *out, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 8608
      start: 8606
    functionDepth: 0
    functionLinenumber: 8606
    functionLinenumberEnd: 8608
    functionName: roaring::internal::uint16_compare
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int uint16_compare(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8617,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8627,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8629,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8631,1
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8632,1
    - Dst: roaring::internal::store_unique
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8633,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8641,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8649,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8657,1
    - Dst: roaring::internal::store_unique
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8658,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8661,1
    - Dst: roaring::internal::store_unique
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8662,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8673,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8676,1
    - Dst: roaring::internal::unique
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8678,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8679,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8682,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8685,1
    - Dst: roaring::internal::unique
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8686,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8687,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 5
    argNames:
    - array1
    - length1
    - array2
    - length2
    - output
    argTypes:
    - uint16_t*
    - uint32_t
    - uint16_t*
    - uint32_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8691
      start: 8610
    functionDepth: 0
    functionLinenumber: 8610
    functionLinenumberEnd: 8691
    functionName: roaring::internal::union_vector16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - _mm_set1_epi16
    - roaring::internal::unique
    - memcpy
    - qsort
    - roaring::internal::sse_merge
    - roaring::internal::store_unique
    - _mm_lddqu_si128
    - roaring::internal::union_uint16
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 union_vector16(const uint16_t *__restrict__ array1,
      uint32_t length1,\n                        const uint16_t *__restrict__ array2,
      uint32_t length2,\n                        uint16_t *__restrict__ output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8708,1
    - Dst: _mm_alignr_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8709,1
    - Dst: _mm_cmpeq_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8710,1
    - Dst: _mm_cmpeq_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8711,1
    - Dst: _mm_or_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8712,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8716,1
    - Dst: _mm_shuffle_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8717,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - old
    - newval
    - output
    argTypes:
    - __m128i
    - __m128i
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8720
      start: 8692
    functionDepth: 0
    functionLinenumber: 8692
    functionLinenumberEnd: 8720
    functionName: roaring::internal::store_unique_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - _mm_storeu_si128
    - _mm_alignr_epi8
    - _mm_or_si128
    - _mm_shuffle_epi8
    - _mm_cmpeq_epi16
    - _mm_lddqu_si128
    linkageType: ''
    returnType: CROARING_UNTARGET_AVX2
    signature: "CROARING_UNTARGET_AVX2 store_unique_xor(__m128i old, __m128i newval,\n
      \                                  uint16_t *output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - len
    argTypes:
    - uint16_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 8734
      start: 8721
    functionDepth: 0
    functionLinenumber: 8721
    functionLinenumberEnd: 8734
    functionName: roaring::internal::unique_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CROARING_UNTARGET_AVX2
    signature: CROARING_UNTARGET_AVX2 unique_xor(uint16_t *out, uint32_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8741,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8751,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8753,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8755,1
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8756,1
    - Dst: roaring::internal::store_unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8758,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8767,1
    - Dst: _mm_lddqu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8775,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8783,1
    - Dst: roaring::internal::store_unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8787,1
    - Dst: roaring::internal::sse_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8790,1
    - Dst: roaring::internal::store_unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8794,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8809,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8813,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8817,1
    - Dst: roaring::internal::unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8818,1
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8819,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8823,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8827,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8831,1
    - Dst: roaring::internal::unique_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8832,1
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8833,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 67
    argCount: 5
    argNames:
    - array1
    - length1
    - array2
    - length2
    - output
    argTypes:
    - uint16_t*
    - uint32_t
    - uint16_t*
    - uint32_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8838
      start: 8735
    functionDepth: 0
    functionLinenumber: 8735
    functionLinenumberEnd: 8838
    functionName: roaring::internal::xor_vector16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - _mm_set1_epi16
    - memcpy
    - roaring::internal::xor_uint16
    - roaring::internal::store_unique_xor
    - qsort
    - roaring::internal::sse_merge
    - roaring::internal::unique_xor
    - _mm_lddqu_si128
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 xor_vector16(const uint16_t *__restrict__ array1,
      uint32_t length1,\n                      const uint16_t *__restrict__ array2,
      uint32_t length2,\n                      uint16_t *__restrict__ output)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8851,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8855,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8884,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8888,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 5
    argNames:
    - set_1
    - size_1
    - set_2
    - size_2
    - buffer
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t*
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 8893
      start: 8846
    functionDepth: 0
    functionLinenumber: 8846
    functionLinenumberEnd: 8893
    functionName: roaring::internal::union_uint32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: size_t
    signature: "size_t union_uint32(const uint32_t *set_1, size_t size_1, const uint32_t
      *set_2,\n                    size_t size_2, uint32_t *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - set_1
    - size_1
    - set_2
    - size_2
    argTypes:
    - uint32_t*
    - size_t
    - uint32_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 8937
      start: 8895
    functionDepth: 0
    functionLinenumber: 8895
    functionLinenumberEnd: 8937
    functionName: roaring::internal::union_uint32_card
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t union_uint32_card(const uint32_t *set_1, size_t size_1,\n                         const
      uint32_t *set_2, size_t size_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8943,1
    - Dst: roaring::internal::union_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8946,1
    - Dst: roaring::internal::union_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8949,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8955,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8957,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8963,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8965,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - set_1
    - size_1
    - set_2
    - size_2
    - buffer
    argTypes:
    - uint16_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 8968
      start: 8939
    functionDepth: 1
    functionLinenumber: 8939
    functionLinenumberEnd: 8968
    functionName: roaring::internal::fast_union_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::croaring_hardware_support
    - roaring::internal::union_uint16
    - roaring::internal::union_vector16
    linkageType: ''
    returnType: size_t
    signature: "size_t fast_union_uint16(const uint16_t *set_1, size_t size_1,\n                         const
      uint16_t *set_2, size_t size_2,\n                         uint16_t *buffer)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_loadu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8981,1
    - Dst: _mm512_loadu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8982,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8995,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:8996,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9007,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9008,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 9025
      start: 8971
    functionDepth: 0
    functionLinenumber: 8971
    functionLinenumberEnd: 9025
    functionName: roaring::internal::_avx512_memequals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm256_loadu_si256
    - memcpy
    - _mm512_loadu_si512
    linkageType: ''
    returnType: CROARING_TARGET_AVX512
    signature: CROARING_TARGET_AVX512 _avx512_memequals(const void *s1, const void
      *s2, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9038,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9039,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9050,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 9068
      start: 9029
    functionDepth: 0
    functionLinenumber: 9029
    functionLinenumberEnd: 9068
    functionName: roaring::internal::_avx2_memequals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memcpy
    - _mm256_loadu_si256
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: CROARING_TARGET_AVX2 _avx2_memequals(const void *s1, const void *s2,
      size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::_avx512_memequals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9080,1
    - Dst: roaring::internal::_avx2_memequals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9084,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9086,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9089,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 9091
      start: 9072
    functionDepth: 1
    functionLinenumber: 9072
    functionLinenumberEnd: 9091
    functionName: roaring::internal::memequals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::_avx2_memequals
    - roaring::internal::_avx512_memequals
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool memequals(const void *s1, const void *s2, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9104,1
    - Dst: _mm512_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9105,1
    - Dst: _mm512_cvtepu16_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9105,1
    - Dst: _mm512_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9106,1
    - Dst: _mm512_storeu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9107,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - vout
    - array
    - cardinality
    - base
    argTypes:
    - void*
    - uint16_t*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 9117
      start: 9095
    functionDepth: 0
    functionLinenumber: 9095
    functionLinenumberEnd: 9117
    functionName: roaring::internal::avx512_array_container_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - memcpy
    - _mm512_cvtepu16_epi32
    - _mm512_add_epi32
    - _mm512_set1_epi32
    - _mm256_loadu_si256
    linkageType: ''
    returnType: CROARING_TARGET_AVX512
    signature: "CROARING_TARGET_AVX512 avx512_array_container_to_uint32_array(void
      *vout, const uint16_t *array,\n                                           size_t
      cardinality, uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - validate
    - msg
    argTypes:
    - art_internal_validate_t*
    - char*
    constantsTouched: []
    func_position:
      end: 9189
      start: 9185
    functionDepth: 0
    functionLinenumber: 9185
    functionLinenumberEnd: 9189
    functionName: roaring::internal::art_validate_fail
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool art_validate_fail(const art_internal_validate_t *validate,\n
      \                                    const char *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IS_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - art_node_t*
    constantsTouched: []
    func_position:
      end: 9245
      start: 9245
    functionDepth: 0
    functionLinenumber: 9245
    functionLinenumberEnd: 9245
    functionName: roaring::internal::art_is_leaf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - IS_LEAF
    linkageType: ''
    returnType: bool
    signature: bool art_is_leaf(const art_node_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - leaf
    - key
    argTypes:
    - art_leaf_t*
    - art_key_chunk_t[]
    constantsTouched: []
    func_position:
      end: 9249
      start: 9247
    functionDepth: 0
    functionLinenumber: 9247
    functionLinenumberEnd: 9249
    functionName: roaring::internal::art_leaf_populate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void art_leaf_populate(art_leaf_t *leaf, const art_key_chunk_t key[])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - art_inner_node_t*
    constantsTouched: []
    func_position:
      end: 9253
      start: 9251
    functionDepth: 0
    functionLinenumber: 9251
    functionLinenumberEnd: 9253
    functionName: roaring::internal::art_get_type
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t art_get_type(const art_inner_node_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - node
    - typecode
    - prefix
    - prefix_size
    argTypes:
    - art_inner_node_t*
    - art_typecode_t
    - art_key_chunk_t[]
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9262
      start: 9255
    functionDepth: 0
    functionLinenumber: 9255
    functionLinenumberEnd: 9262
    functionName: roaring::internal::art_init_inner_node
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void art_init_inner_node(art_inner_node_t *node,\n                                       art_typecode_t
      typecode,\n                                       const art_key_chunk_t prefix[],\n
      \                                      uint8_t prefix_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9288,1
    - Dst: roaring::internal::art_init_inner_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - prefix
    - prefix_size
    argTypes:
    - art_key_chunk_t[]
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9292
      start: 9286
    functionDepth: 1
    functionLinenumber: 9286
    functionLinenumberEnd: 9292
    functionName: roaring::internal::art_node4_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - roaring::internal::art_init_inner_node
    linkageType: ''
    returnType: art_node4_t
    signature: "art_node4_t *art_node4_create(const art_key_chunk_t prefix[],\n                                     uint8_t
      prefix_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_free_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9297,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - art_node4_t*
    constantsTouched: []
    func_position:
      end: 9300
      start: 9294
    functionDepth: 1
    functionLinenumber: 9294
    functionLinenumberEnd: 9300
    functionName: roaring::internal::art_free_node4
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_free_node
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void art_free_node4(art_node4_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - node
    - key
    argTypes:
    - art_node4_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 9311
      start: 9302
    functionDepth: 0
    functionLinenumber: 9302
    functionLinenumberEnd: 9311
    functionName: roaring::internal::art_node4_find_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node4_find_child(const art_node4_t *node,\n                                               art_key_chunk_t
      key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9324,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9326,1
    - Dst: roaring::internal::art_node16_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9335,1
    - Dst: roaring::internal::art_node16_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9340,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9342,1
    - Dst: roaring::internal::art_node16_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - node
    - child
    - key
    argTypes:
    - art_node4_t*
    - art_node_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9344
      start: 9313
    functionDepth: 1
    functionLinenumber: 9313
    functionLinenumberEnd: 9344
    functionName: roaring::internal::art_node4_insert
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node16_insert
    - roaring::internal::art_node16_create
    - memmove
    - roaring_free
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node4_insert(art_node4_t *node, art_node_t *child,\n
      \                                   uint8_t key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9364,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9367,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9369,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9374,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9379,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_node4_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 9385
      start: 9346
    functionDepth: 1
    functionLinenumber: 9346
    functionLinenumberEnd: 9385
    functionName: roaring::internal::art_node4_erase
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_is_leaf
    - memmove
    - memcpy
    - roaring_free
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node4_erase(art_node4_t *node,\n                                          art_key_chunk_t
      key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - node
    - key_chunk
    - new_child
    argTypes:
    - art_node4_t*
    - art_key_chunk_t
    - art_node_t*
    constantsTouched: []
    func_position:
      end: 9397
      start: 9387
    functionDepth: 0
    functionLinenumber: 9387
    functionLinenumberEnd: 9397
    functionName: roaring::internal::art_node4_replace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void art_node4_replace(art_node4_t *node,\n                                     art_key_chunk_t
      key_chunk,\n                                     art_node_t *new_child)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node4_t*
    - int
    constantsTouched: []
    func_position:
      end: 9411
      start: 9399
    functionDepth: 0
    functionLinenumber: 9399
    functionLinenumberEnd: 9411
    functionName: roaring::internal::art_node4_next_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node4_next_child(const art_node4_t *node,\n
      \                                                      int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node4_t*
    - int
    constantsTouched: []
    func_position:
      end: 9428
      start: 9413
    functionDepth: 0
    functionLinenumber: 9413
    functionLinenumberEnd: 9428
    functionName: roaring::internal::art_node4_prev_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node4_prev_child(const art_node4_t *node,\n
      \                                                      int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node4_t*
    - int
    constantsTouched: []
    func_position:
      end: 9441
      start: 9430
    functionDepth: 0
    functionLinenumber: 9430
    functionLinenumberEnd: 9441
    functionName: roaring::internal::art_node4_child_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node4_child_at(const art_node4_t *node,\n
      \                                                    int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_node4_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 9457
      start: 9443
    functionDepth: 0
    functionLinenumber: 9443
    functionLinenumberEnd: 9457
    functionName: roaring::internal::art_node4_lower_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node4_lower_bound(\n    art_node4_t *node,
      art_key_chunk_t key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9466,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9469,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9472,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9479,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9486,1
    - Dst: roaring::internal::art_internal_validate_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9491,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - node
    - validator
    argTypes:
    - art_node4_t*
    - art_internal_validate_t
    constantsTouched: []
    func_position:
      end: 9496
      start: 9462
    functionDepth: 1
    functionLinenumber: 9462
    functionLinenumberEnd: 9496
    functionName: roaring::internal::art_node4_internal_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_validate_fail
    - roaring::internal::art_internal_validate_at
    linkageType: ''
    returnType: bool
    signature: "bool art_node4_internal_validate(const art_node4_t *node,\n                                        art_internal_validate_t
      validator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9500,1
    - Dst: roaring::internal::art_init_inner_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - prefix
    - prefix_size
    argTypes:
    - art_key_chunk_t[]
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9504
      start: 9498
    functionDepth: 1
    functionLinenumber: 9498
    functionLinenumberEnd: 9504
    functionName: roaring::internal::art_node16_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring_malloc
    - roaring::internal::art_init_inner_node
    linkageType: ''
    returnType: art_node16_t
    signature: "art_node16_t *art_node16_create(const art_key_chunk_t prefix[],\n
      \                                      uint8_t prefix_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_free_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9509,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - art_node16_t*
    constantsTouched: []
    func_position:
      end: 9512
      start: 9506
    functionDepth: 1
    functionLinenumber: 9506
    functionLinenumberEnd: 9512
    functionName: roaring::internal::art_free_node16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_free_node
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void art_free_node16(art_node16_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - node
    - key
    argTypes:
    - art_node16_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 9523
      start: 9514
    functionDepth: 0
    functionLinenumber: 9514
    functionLinenumberEnd: 9523
    functionName: roaring::internal::art_node16_find_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node16_find_child(const art_node16_t *node,\n                                                art_key_chunk_t
      key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9536,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9538,1
    - Dst: roaring::internal::art_node48_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9547,1
    - Dst: roaring::internal::art_node48_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9550,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9552,1
    - Dst: roaring::internal::art_node48_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - node
    - child
    - key
    argTypes:
    - art_node16_t*
    - art_node_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9554
      start: 9525
    functionDepth: 1
    functionLinenumber: 9525
    functionLinenumberEnd: 9554
    functionName: roaring::internal::art_node16_insert
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::art_node48_insert
    - memmove
    - roaring::internal::art_node48_create
    - roaring_free
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node16_insert(art_node16_t *node, art_node_t *child,\n
      \                                    uint8_t key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9563,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9565,1
    - Dst: roaring::internal::art_node4_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9575,1
    - Dst: roaring::internal::art_node4_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9579,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9581,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_node16_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9583
      start: 9556
    functionDepth: 2
    functionLinenumber: 9556
    functionLinenumberEnd: 9583
    functionName: roaring::internal::art_node16_erase
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node4_insert
    - roaring::internal::art_node4_create
    - memmove
    - roaring_free
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node16_erase(art_node16_t *node,\n                                           uint8_t
      key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - node
    - key_chunk
    - new_child
    argTypes:
    - art_node16_t*
    - art_key_chunk_t
    - art_node_t*
    constantsTouched: []
    func_position:
      end: 9595
      start: 9585
    functionDepth: 0
    functionLinenumber: 9585
    functionLinenumberEnd: 9595
    functionName: roaring::internal::art_node16_replace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void art_node16_replace(art_node16_t *node,\n                                      art_key_chunk_t
      key_chunk,\n                                      art_node_t *new_child)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node16_t*
    - int
    constantsTouched: []
    func_position:
      end: 9609
      start: 9597
    functionDepth: 0
    functionLinenumber: 9597
    functionLinenumberEnd: 9609
    functionName: roaring::internal::art_node16_next_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node16_next_child(\n    const art_node16_t
      *node, int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node16_t*
    - int
    constantsTouched: []
    func_position:
      end: 9626
      start: 9611
    functionDepth: 0
    functionLinenumber: 9611
    functionLinenumberEnd: 9626
    functionName: roaring::internal::art_node16_prev_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node16_prev_child(\n    const art_node16_t
      *node, int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node16_t*
    - int
    constantsTouched: []
    func_position:
      end: 9639
      start: 9628
    functionDepth: 0
    functionLinenumber: 9628
    functionLinenumberEnd: 9639
    functionName: roaring::internal::art_node16_child_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node16_child_at(const art_node16_t *node,\n
      \                                                     int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_node16_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 9655
      start: 9641
    functionDepth: 0
    functionLinenumber: 9641
    functionLinenumberEnd: 9655
    functionName: roaring::internal::art_node16_lower_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node16_lower_bound(\n    art_node16_t *node,
      art_key_chunk_t key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9661,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9664,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9671,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9677,1
    - Dst: roaring::internal::art_internal_validate_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9682,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - node
    - validator
    argTypes:
    - art_node16_t*
    - art_internal_validate_t
    constantsTouched: []
    func_position:
      end: 9687
      start: 9657
    functionDepth: 1
    functionLinenumber: 9657
    functionLinenumberEnd: 9687
    functionName: roaring::internal::art_node16_internal_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_validate_fail
    - roaring::internal::art_internal_validate_at
    linkageType: ''
    returnType: bool
    signature: "bool art_node16_internal_validate(const art_node16_t *node,\n                                         art_internal_validate_t
      validator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9691,1
    - Dst: roaring::internal::art_init_inner_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - prefix
    - prefix_size
    argTypes:
    - art_key_chunk_t[]
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9699
      start: 9689
    functionDepth: 1
    functionLinenumber: 9689
    functionLinenumberEnd: 9699
    functionName: roaring::internal::art_node48_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring_malloc
    - roaring::internal::art_init_inner_node
    linkageType: ''
    returnType: art_node48_t
    signature: "art_node48_t *art_node48_create(const art_key_chunk_t prefix[],\n
      \                                      uint8_t prefix_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_free_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9707,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9708,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - art_node48_t*
    constantsTouched: []
    func_position:
      end: 9711
      start: 9701
    functionDepth: 1
    functionLinenumber: 9701
    functionLinenumberEnd: 9711
    functionName: roaring::internal::art_free_node48
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_free_node
    - roaring_free
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: void art_free_node48(art_node48_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - node
    - key
    argTypes:
    - art_node48_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 9720
      start: 9713
    functionDepth: 0
    functionLinenumber: 9713
    functionLinenumberEnd: 9720
    functionName: roaring::internal::art_node48_find_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node48_find_child(const art_node48_t *node,\n                                                art_key_chunk_t
      key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9731,1
    - Dst: roaring::internal::art_node256_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9735,1
    - Dst: roaring::internal::art_node256_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9739,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9742,1
    - Dst: roaring::internal::art_node256_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - node
    - child
    - key
    argTypes:
    - art_node48_t*
    - art_node_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9744
      start: 9722
    functionDepth: 1
    functionLinenumber: 9722
    functionLinenumberEnd: 9744
    functionName: roaring::internal::art_node48_insert
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - UINT64_C
    - roaring::internal::art_node256_insert
    - roaring_free
    - roaring::internal::art_node256_create
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node48_insert(art_node48_t *node, art_node_t *child,\n
      \                                    uint8_t key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9753,1
    - Dst: roaring::internal::art_node16_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9760,1
    - Dst: roaring::internal::art_node16_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9764,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9767,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_node48_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9769
      start: 9746
    functionDepth: 2
    functionLinenumber: 9746
    functionLinenumberEnd: 9769
    functionName: roaring::internal::art_node48_erase
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    - roaring::internal::art_node16_create
    - roaring_free
    - roaring::internal::art_node16_insert
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node48_erase(art_node48_t *node,\n                                           uint8_t
      key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - node
    - key_chunk
    - new_child
    argTypes:
    - art_node48_t*
    - art_key_chunk_t
    - art_node_t*
    constantsTouched: []
    func_position:
      end: 9777
      start: 9771
    functionDepth: 0
    functionLinenumber: 9771
    functionLinenumberEnd: 9777
    functionName: roaring::internal::art_node48_replace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void art_node48_replace(art_node48_t *node,\n                                      art_key_chunk_t
      key_chunk,\n                                      art_node_t *new_child)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node48_t*
    - int
    constantsTouched: []
    func_position:
      end: 9793
      start: 9779
    functionDepth: 0
    functionLinenumber: 9779
    functionLinenumberEnd: 9793
    functionName: roaring::internal::art_node48_next_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node48_next_child(\n    const art_node48_t
      *node, int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node48_t*
    - int
    constantsTouched: []
    func_position:
      end: 9812
      start: 9795
    functionDepth: 0
    functionLinenumber: 9795
    functionLinenumberEnd: 9812
    functionName: roaring::internal::art_node48_prev_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node48_prev_child(\n    const art_node48_t
      *node, int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node48_t*
    - int
    constantsTouched: []
    func_position:
      end: 9825
      start: 9814
    functionDepth: 0
    functionLinenumber: 9814
    functionLinenumberEnd: 9825
    functionName: roaring::internal::art_node48_child_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node48_child_at(const art_node48_t *node,\n
      \                                                     int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_node48_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 9840
      start: 9827
    functionDepth: 0
    functionLinenumber: 9827
    functionLinenumberEnd: 9840
    functionName: roaring::internal::art_node48_lower_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node48_lower_bound(\n    art_node48_t *node,
      art_key_chunk_t key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9845,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9848,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9854,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9855,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9861,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9863,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9869,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9881,1
    - Dst: roaring::internal::art_internal_validate_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9892,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - node
    - validator
    argTypes:
    - art_node48_t*
    - art_internal_validate_t
    constantsTouched: []
    func_position:
      end: 9899
      start: 9842
    functionDepth: 1
    functionLinenumber: 9842
    functionLinenumberEnd: 9899
    functionName: roaring::internal::art_node48_internal_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_validate_fail
    - UINT64_C
    - roaring::internal::art_internal_validate_at
    linkageType: ''
    returnType: bool
    signature: "bool art_node48_internal_validate(const art_node48_t *node,\n                                         art_internal_validate_t
      validator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9904,1
    - Dst: roaring::internal::art_init_inner_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - prefix
    - prefix_size
    argTypes:
    - art_key_chunk_t[]
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9911
      start: 9901
    functionDepth: 1
    functionLinenumber: 9901
    functionLinenumberEnd: 9911
    functionName: roaring::internal::art_node256_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring_malloc
    - roaring::internal::art_init_inner_node
    linkageType: ''
    returnType: art_node256_t
    signature: "art_node256_t *art_node256_create(const art_key_chunk_t prefix[],\n
      \                                        uint8_t prefix_size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_free_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9916,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - node
    argTypes:
    - art_node256_t*
    constantsTouched: []
    func_position:
      end: 9920
      start: 9913
    functionDepth: 1
    functionLinenumber: 9913
    functionLinenumberEnd: 9920
    functionName: roaring::internal::art_free_node256
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_free_node
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void art_free_node256(art_node256_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - key
    argTypes:
    - art_node256_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 9925
      start: 9922
    functionDepth: 0
    functionLinenumber: 9922
    functionLinenumberEnd: 9925
    functionName: roaring::internal::art_node256_find_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node256_find_child(const art_node256_t *node,\n                                                 art_key_chunk_t
      key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - child
    - key
    argTypes:
    - art_node256_t*
    - art_node_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9932
      start: 9927
    functionDepth: 0
    functionLinenumber: 9927
    functionLinenumberEnd: 9932
    functionName: roaring::internal::art_node256_insert
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node256_insert(art_node256_t *node, art_node_t *child,\n
      \                                     uint8_t key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_node48_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9943,1
    - Dst: roaring::internal::art_node48_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9946,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:9949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_node256_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 9951
      start: 9934
    functionDepth: 2
    functionLinenumber: 9934
    functionLinenumberEnd: 9951
    functionName: roaring::internal::art_node256_erase
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node48_insert
    - roaring::internal::art_node48_create
    - roaring_free
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node256_erase(art_node256_t *node,\n                                            uint8_t
      key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - node
    - key_chunk
    - new_child
    argTypes:
    - art_node256_t*
    - art_key_chunk_t
    - art_node_t*
    constantsTouched: []
    func_position:
      end: 9957
      start: 9953
    functionDepth: 0
    functionLinenumber: 9953
    functionLinenumberEnd: 9957
    functionName: roaring::internal::art_node256_replace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void art_node256_replace(art_node256_t *node,\n                                       art_key_chunk_t
      key_chunk,\n                                       art_node_t *new_child)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node256_t*
    - int
    constantsTouched: []
    func_position:
      end: 9973
      start: 9959
    functionDepth: 0
    functionLinenumber: 9959
    functionLinenumberEnd: 9973
    functionName: roaring::internal::art_node256_next_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node256_next_child(\n    const art_node256_t
      *node, int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node256_t*
    - int
    constantsTouched: []
    func_position:
      end: 9992
      start: 9975
    functionDepth: 0
    functionLinenumber: 9975
    functionLinenumberEnd: 9992
    functionName: roaring::internal::art_node256_prev_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node256_prev_child(\n    const art_node256_t
      *node, int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node256_t*
    - int
    constantsTouched: []
    func_position:
      end: 10005
      start: 9994
    functionDepth: 0
    functionLinenumber: 9994
    functionLinenumberEnd: 10005
    functionName: roaring::internal::art_node256_child_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node256_child_at(\n    const art_node256_t
      *node, int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_node256_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 10020
      start: 10007
    functionDepth: 0
    functionLinenumber: 10007
    functionLinenumberEnd: 10020
    functionName: roaring::internal::art_node256_lower_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node256_lower_bound(\n    art_node256_t *node,
      art_key_chunk_t key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10025,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10028,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10038,1
    - Dst: roaring::internal::art_internal_validate_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10044,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10050,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - node
    - validator
    argTypes:
    - art_node256_t*
    - art_internal_validate_t
    constantsTouched: []
    func_position:
      end: 10054
      start: 10022
    functionDepth: 1
    functionLinenumber: 10022
    functionLinenumberEnd: 10054
    functionName: roaring::internal::art_node256_internal_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_validate_fail
    - roaring::internal::art_internal_validate_at
    linkageType: ''
    returnType: bool
    signature: "bool art_node256_internal_validate(const art_node256_t *node,\n                                          art_internal_validate_t
      validator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10060,1
    - Dst: roaring::internal::art_node4_find_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10062,1
    - Dst: roaring::internal::art_node16_find_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10064,1
    - Dst: roaring::internal::art_node48_find_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10066,1
    - Dst: roaring::internal::art_node256_find_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10068,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_inner_node_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 10073
      start: 10058
    functionDepth: 1
    functionLinenumber: 10058
    functionLinenumberEnd: 10073
    functionName: roaring::internal::art_find_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node48_find_child
    - roaring::internal::art_node4_find_child
    - roaring::internal::art_node16_find_child
    - roaring::internal::art_get_type
    - assert
    - roaring::internal::art_node256_find_child
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_find_child(const art_inner_node_t *node,\n                                  art_key_chunk_t
      key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10078,1
    - Dst: roaring::internal::art_node4_replace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10080,1
    - Dst: roaring::internal::art_node16_replace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10083,1
    - Dst: roaring::internal::art_node48_replace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10086,1
    - Dst: roaring::internal::art_node256_replace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10089,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10092,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - node
    - key_chunk
    - new_child
    argTypes:
    - art_inner_node_t*
    - art_key_chunk_t
    - art_node_t*
    constantsTouched: []
    func_position:
      end: 10094
      start: 10076
    functionDepth: 1
    functionLinenumber: 10076
    functionLinenumberEnd: 10094
    functionName: roaring::internal::art_replace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node16_replace
    - roaring::internal::art_node4_replace
    - roaring::internal::art_node256_replace
    - roaring::internal::art_get_type
    - assert
    - roaring::internal::art_node48_replace
    linkageType: ''
    returnType: void
    signature: "void art_replace(art_inner_node_t *node, art_key_chunk_t key_chunk,\n
      \                       art_node_t *new_child)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10100,1
    - Dst: roaring::internal::art_node4_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10102,1
    - Dst: roaring::internal::art_node16_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10104,1
    - Dst: roaring::internal::art_node48_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10106,1
    - Dst: roaring::internal::art_node256_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10108,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_inner_node_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 10113
      start: 10098
    functionDepth: 3
    functionLinenumber: 10098
    functionLinenumberEnd: 10113
    functionName: roaring::internal::art_node_erase
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node48_erase
    - roaring::internal::art_node4_erase
    - roaring::internal::art_get_type
    - assert
    - roaring::internal::art_node256_erase
    - roaring::internal::art_node16_erase
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node_erase(art_inner_node_t *node,\n                                  art_key_chunk_t
      key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10120,1
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10121,1
    - Dst: roaring::internal::art_node4_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10123,1
    - Dst: roaring::internal::art_node16_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10125,1
    - Dst: roaring::internal::art_node48_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10127,1
    - Dst: roaring::internal::art_node256_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10129,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - node
    - key_chunk
    - leaf
    argTypes:
    - art_inner_node_t*
    - art_key_chunk_t
    - art_leaf_t*
    constantsTouched: []
    func_position:
      end: 10134
      start: 10117
    functionDepth: 2
    functionLinenumber: 10117
    functionLinenumberEnd: 10134
    functionName: roaring::internal::art_node_insert_leaf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node48_insert
    - roaring::internal::art_node4_insert
    - roaring::internal::art_get_type
    - roaring::internal::art_node16_insert
    - roaring::internal::art_node256_insert
    - assert
    - SET_LEAF
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_node_insert_leaf(art_inner_node_t *node,\n                                        art_key_chunk_t
      key_chunk,\n                                        art_leaf_t *leaf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10138,1
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10142,1
    - Dst: roaring::internal::art_free_node4
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10144,1
    - Dst: roaring::internal::art_free_node16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10147,1
    - Dst: roaring::internal::art_free_node48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10150,1
    - Dst: roaring::internal::art_free_node256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10153,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - node
    argTypes:
    - art_node_t*
    constantsTouched: []
    func_position:
      end: 10158
      start: 10137
    functionDepth: 2
    functionLinenumber: 10137
    functionLinenumberEnd: 10158
    functionName: roaring::internal::art_free_node
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::art_free_node4
    - roaring::internal::art_free_node16
    - roaring::internal::art_get_type
    - roaring::internal::art_free_node48
    - roaring::internal::art_free_node256
    - assert
    - roaring::internal::art_is_leaf
    linkageType: ''
    returnType: void
    signature: void art_free_node(art_node_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10164,1
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10169,1
    - Dst: roaring::internal::art_node4_next_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10171,1
    - Dst: roaring::internal::art_node16_next_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10173,1
    - Dst: roaring::internal::art_node48_next_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10175,1
    - Dst: roaring::internal::art_node256_next_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10177,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node_t*
    - int
    constantsTouched: []
    func_position:
      end: 10182
      start: 10162
    functionDepth: 1
    functionLinenumber: 10162
    functionLinenumberEnd: 10182
    functionName: roaring::internal::art_node_next_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node256_next_child
    - roaring::internal::art_get_type
    - roaring::internal::art_node4_next_child
    - assert
    - roaring::internal::art_node16_next_child
    - roaring::internal::art_is_leaf
    - roaring::internal::art_node48_next_child
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node_next_child(const art_node_t *node,\n
      \                                              int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10188,1
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10193,1
    - Dst: roaring::internal::art_node4_prev_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10195,1
    - Dst: roaring::internal::art_node16_prev_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10197,1
    - Dst: roaring::internal::art_node48_prev_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10199,1
    - Dst: roaring::internal::art_node256_prev_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10201,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node_t*
    - int
    constantsTouched: []
    func_position:
      end: 10206
      start: 10186
    functionDepth: 1
    functionLinenumber: 10186
    functionLinenumberEnd: 10206
    functionName: roaring::internal::art_node_prev_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node4_prev_child
    - roaring::internal::art_node48_prev_child
    - roaring::internal::art_node16_prev_child
    - roaring::internal::art_get_type
    - roaring::internal::art_node256_prev_child
    - assert
    - roaring::internal::art_is_leaf
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node_prev_child(const art_node_t *node,\n
      \                                              int index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10212,1
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10217,1
    - Dst: roaring::internal::art_node4_child_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10219,1
    - Dst: roaring::internal::art_node16_child_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10221,1
    - Dst: roaring::internal::art_node48_child_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10223,1
    - Dst: roaring::internal::art_node256_child_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10225,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - art_node_t*
    - int
    constantsTouched: []
    func_position:
      end: 10230
      start: 10210
    functionDepth: 1
    functionLinenumber: 10210
    functionLinenumberEnd: 10230
    functionName: roaring::internal::art_node_child_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node48_child_at
    - roaring::internal::art_node4_child_at
    - roaring::internal::art_node256_child_at
    - roaring::internal::art_get_type
    - roaring::internal::art_node16_child_at
    - assert
    - roaring::internal::art_is_leaf
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node_child_at(const art_node_t *node,\n                                             int
      index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10236,1
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10241,1
    - Dst: roaring::internal::art_node4_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10243,1
    - Dst: roaring::internal::art_node16_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10245,1
    - Dst: roaring::internal::art_node48_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10247,1
    - Dst: roaring::internal::art_node256_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10249,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - node
    - key_chunk
    argTypes:
    - art_node_t*
    - art_key_chunk_t
    constantsTouched: []
    func_position:
      end: 10254
      start: 10234
    functionDepth: 1
    functionLinenumber: 10234
    functionLinenumberEnd: 10254
    functionName: roaring::internal::art_node_lower_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node48_lower_bound
    - roaring::internal::art_node256_lower_bound
    - roaring::internal::art_node4_lower_bound
    - roaring::internal::art_node16_lower_bound
    - roaring::internal::art_get_type
    - assert
    - roaring::internal::art_is_leaf
    linkageType: ''
    returnType: art_indexed_child_t
    signature: "art_indexed_child_t art_node_lower_bound(const art_node_t *node,\n
      \                                               art_key_chunk_t key_chunk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key1
    - key1_from
    - key2
    - key2_from
    - length
    argTypes:
    - art_key_chunk_t[]
    - uint8_t
    - art_key_chunk_t[]
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 10267
      start: 10262
    functionDepth: 0
    functionLinenumber: 10262
    functionLinenumberEnd: 10267
    functionName: roaring::internal::art_compare_prefix
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int art_compare_prefix(const art_key_chunk_t key1[],\n                                     uint8_t
      key1_from,\n                                     const art_key_chunk_t key2[],\n
      \                                    uint8_t key2_from, uint8_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_compare_prefix
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - art_key_chunk_t[]
    - art_key_chunk_t[]
    constantsTouched: []
    func_position:
      end: 10273
      start: 10270
    functionDepth: 1
    functionLinenumber: 10270
    functionLinenumberEnd: 10273
    functionName: roaring::internal::art_compare_keys
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_compare_prefix
    linkageType: ''
    returnType: int
    signature: "int art_compare_keys(const art_key_chunk_t key1[],\n                     const
      art_key_chunk_t key2[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - key1
    - key1_from
    - key1_to
    - key2
    - key2_from
    - key2_to
    argTypes:
    - art_key_chunk_t[]
    - uint8_t
    - uint8_t
    - art_key_chunk_t[]
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 10292
      start: 10276
    functionDepth: 0
    functionLinenumber: 10276
    functionLinenumberEnd: 10292
    functionName: roaring::internal::art_common_prefix
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t art_common_prefix(const art_key_chunk_t key1[],\n                                 uint8_t
      key1_from, uint8_t key1_to,\n                                 const art_key_chunk_t
      key2[],\n                                 uint8_t key2_from, uint8_t key2_to)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10298,1
    - Dst: CAST_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10299,1
    - Dst: roaring::internal::art_node4_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10306,1
    - Dst: roaring::internal::art_node_insert_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10308,1
    - Dst: roaring::internal::art_node_insert_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10310,1
    - Dst: roaring::internal::art_node4_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10325,1
    - Dst: roaring::internal::art_node4_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10328,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10336,1
    - Dst: roaring::internal::art_node_insert_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10341,1
    - Dst: roaring::internal::art_find_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10347,1
    - Dst: roaring::internal::art_insert_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10350,1
    - Dst: roaring::internal::art_replace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10353,1
    - Dst: roaring::internal::art_node_insert_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - node
    - key
    - depth
    - new_leaf
    argTypes:
    - art_node_t*
    - art_key_chunk_t[]
    - uint8_t
    - art_leaf_t*
    constantsTouched: []
    func_position:
      end: 10358
      start: 10296
    functionDepth: 3
    functionLinenumber: 10296
    functionLinenumberEnd: 10358
    functionName: roaring::internal::art_insert_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - CAST_LEAF
    - roaring::internal::art_insert_at
    - roaring::internal::art_node4_insert
    - roaring::internal::art_node4_create
    - memmove
    - roaring::internal::art_replace
    - roaring::internal::art_is_leaf
    - roaring::internal::art_node_insert_leaf
    - roaring::internal::art_find_child
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_insert_at(art_node_t *node, const art_key_chunk_t
      key[],\n                                 uint8_t depth, art_leaf_t *new_leaf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10378,1
    - Dst: CAST_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10379,1
    - Dst: roaring::internal::art_find_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10398,1
    - Dst: roaring::internal::art_erase_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10406,1
    - Dst: roaring::internal::art_node_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10414,1
    - Dst: roaring::internal::art_replace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - node
    - key
    - depth
    argTypes:
    - art_node_t*
    - art_key_chunk_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 10421
      start: 10371
    functionDepth: 4
    functionLinenumber: 10371
    functionLinenumberEnd: 10421
    functionName: roaring::internal::art_erase_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - CAST_LEAF
    - roaring::internal::art_erase_at
    - roaring::internal::art_node_erase
    - roaring::internal::art_is_leaf
    - roaring::internal::art_replace
    - roaring::internal::art_find_child
    linkageType: ''
    returnType: art_erase_result_t
    signature: "art_erase_result_t art_erase_at(art_node_t *node,\n                                       const
      art_key_chunk_t *key,\n                                       uint8_t depth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10427,1
    - Dst: roaring::internal::art_find_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10436,1
    - Dst: CAST_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - node
    - key
    - depth
    argTypes:
    - art_node_t*
    - art_key_chunk_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 10454
      start: 10425
    functionDepth: 2
    functionLinenumber: 10425
    functionLinenumberEnd: 10454
    functionName: roaring::internal::art_find_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_is_leaf
    - CAST_LEAF
    - roaring::internal::art_find_child
    linkageType: ''
    returnType: art_val_t
    signature: "art_val_t *art_find_at(const art_node_t *node,\n                              const
      art_key_chunk_t *key, uint8_t depth)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10458,1
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10462,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10476,1
    - Dst: roaring::internal::art_node_next_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10479,1
    - Dst: roaring::internal::art_size_in_bytes_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10481,1
    - Dst: roaring::internal::art_node_next_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10482,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - node
    argTypes:
    - art_node_t*
    constantsTouched: []
    func_position:
      end: 10485
      start: 10457
    functionDepth: 2
    functionLinenumber: 10457
    functionLinenumberEnd: 10485
    functionName: roaring::internal::art_size_in_bytes_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::art_size_in_bytes_at
    - roaring::internal::art_node_next_child
    - roaring::internal::art_get_type
    - assert
    - roaring::internal::art_is_leaf
    linkageType: ''
    returnType: size_t
    signature: size_t art_size_in_bytes_at(const art_node_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10490,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10491,1
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10494,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10496,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10499,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10502,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10505,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - node
    argTypes:
    - art_node_t*
    constantsTouched: []
    func_position:
      end: 10511
      start: 10489
    functionDepth: 1
    functionLinenumber: 10489
    functionLinenumberEnd: 10511
    functionName: roaring::internal::art_node_print_type
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_is_leaf
    - assert
    - printf
    - roaring::internal::art_get_type
    linkageType: ''
    returnType: void
    signature: void art_node_print_type(const art_node_t *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10515,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10516,1
    - Dst: CAST_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10517,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10519,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10521,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10524,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10527,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10528,1
    - Dst: roaring::internal::art_node_print_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10529,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10530,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10533,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10534,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10536,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10537,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10539,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10541,1
    - Dst: roaring::internal::art_get_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10543,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10547,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10548,1
    - Dst: roaring::internal::art_node_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10549,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10555,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10556,1
    - Dst: roaring::internal::art_node_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10557,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10564,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10565,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10566,1
    - Dst: roaring::internal::art_node_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10567,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10575,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10576,1
    - Dst: roaring::internal::art_node_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10577,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10582,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10586,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10587,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 68
    argCount: 2
    argNames:
    - node
    - depth
    argTypes:
    - art_node_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 10588
      start: 10514
    functionDepth: 2
    functionLinenumber: 10514
    functionLinenumberEnd: 10588
    functionName: roaring::internal::art_node_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - CAST_LEAF
    - roaring::internal::art_node_printf
    - printf
    - roaring::internal::art_get_type
    - assert
    - roaring::internal::art_is_leaf
    - roaring::internal::art_node_print_type
    linkageType: ''
    returnType: void
    signature: void art_node_printf(const art_node_t *node, uint8_t depth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_leaf_populate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10593,1
    - Dst: SET_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10595,1
    - Dst: roaring::internal::art_insert_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - art
    - key
    - val
    argTypes:
    - art_t*
    - art_key_chunk_t*
    - art_val_t*
    constantsTouched: []
    func_position:
      end: 10599
      start: 10591
    functionDepth: 4
    functionLinenumber: 10591
    functionLinenumberEnd: 10599
    functionName: roaring::internal::art_insert
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_leaf_populate
    - roaring::internal::art_insert_at
    - SET_LEAF
    linkageType: ''
    returnType: void
    signature: void art_insert(art_t *art, const art_key_chunk_t *key, art_val_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_erase_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - art
    - key
    argTypes:
    - art_t*
    - art_key_chunk_t*
    constantsTouched: []
    func_position:
      end: 10611
      start: 10601
    functionDepth: 5
    functionLinenumber: 10601
    functionLinenumberEnd: 10611
    functionName: roaring::internal::art_erase
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_erase_at
    linkageType: ''
    returnType: art_val_t
    signature: art_val_t *art_erase(art_t *art, const art_key_chunk_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_find_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - art
    - key
    argTypes:
    - art_t*
    - art_key_chunk_t*
    constantsTouched: []
    func_position:
      end: 10618
      start: 10613
    functionDepth: 3
    functionLinenumber: 10613
    functionLinenumberEnd: 10618
    functionName: roaring::internal::art_find
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_find_at
    linkageType: ''
    returnType: art_val_t
    signature: art_val_t *art_find(const art_t *art, const art_key_chunk_t *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - art
    argTypes:
    - art_t*
    constantsTouched: []
    func_position:
      end: 10620
      start: 10620
    functionDepth: 0
    functionLinenumber: 10620
    functionLinenumberEnd: 10620
    functionName: roaring::internal::art_is_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool art_is_empty(const art_t *art)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_free_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - art
    argTypes:
    - art_t*
    constantsTouched: []
    func_position:
      end: 10627
      start: 10622
    functionDepth: 3
    functionLinenumber: 10622
    functionLinenumberEnd: 10627
    functionName: roaring::internal::art_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_free_node
    linkageType: ''
    returnType: void
    signature: void art_free(art_t *art)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_size_in_bytes_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - art
    argTypes:
    - art_t*
    constantsTouched: []
    func_position:
      end: 10635
      start: 10629
    functionDepth: 3
    functionLinenumber: 10629
    functionLinenumberEnd: 10635
    functionName: roaring::internal::art_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_size_in_bytes_at
    linkageType: ''
    returnType: size_t
    signature: size_t art_size_in_bytes(const art_t *art)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_node_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - art
    argTypes:
    - art_t*
    constantsTouched: []
    func_position:
      end: 10643
      start: 10638
    functionDepth: 3
    functionLinenumber: 10638
    functionLinenumberEnd: 10643
    functionName: roaring::internal::art_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node_printf
    linkageType: ''
    returnType: void
    signature: void art_printf(const art_t *art)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - art_iterator_t*
    constantsTouched: []
    func_position:
      end: 10650
      start: 10648
    functionDepth: 0
    functionLinenumber: 10648
    functionLinenumberEnd: 10650
    functionName: roaring::internal::art_iterator_node
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: art_node_t
    signature: art_node_t *art_iterator_node(art_iterator_t *iterator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SET_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10656,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - iterator
    - leaf
    argTypes:
    - art_iterator_t*
    - art_leaf_t*
    constantsTouched: []
    func_position:
      end: 10661
      start: 10654
    functionDepth: 0
    functionLinenumber: 10654
    functionLinenumberEnd: 10661
    functionName: roaring::internal::art_iterator_valid_loc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - SET_LEAF
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool art_iterator_valid_loc(art_iterator_t *iterator,\n                                          art_leaf_t
      *leaf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - art_iterator_t*
    constantsTouched: []
    func_position:
      end: 10668
      start: 10664
    functionDepth: 0
    functionLinenumber: 10664
    functionLinenumberEnd: 10668
    functionName: roaring::internal::art_iterator_invalid_loc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: bool
    signature: bool art_iterator_invalid_loc(art_iterator_t *iterator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_node_child_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10681,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - iterator
    - node
    - index_in_node
    argTypes:
    - art_iterator_t*
    - art_inner_node_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 10685
      start: 10674
    functionDepth: 2
    functionLinenumber: 10674
    functionLinenumberEnd: 10685
    functionName: roaring::internal::art_iterator_down
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - assert
    - roaring::internal::art_node_child_at
    linkageType: ''
    returnType: void
    signature: "void art_iterator_down(art_iterator_t *iterator,\n                              const
      art_inner_node_t *node,\n                              uint8_t index_in_node)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_node_next_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10695,1
    - Dst: roaring::internal::art_node_prev_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10697,1
    - Dst: roaring::internal::art_iterator_down
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - iterator
    - inner_node
    - forward
    argTypes:
    - art_iterator_t*
    - art_inner_node_t*
    - bool
    constantsTouched: []
    func_position:
      end: 10703
      start: 10689
    functionDepth: 3
    functionLinenumber: 10689
    functionLinenumberEnd: 10703
    functionName: roaring::internal::art_iterator_neighbor_child
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_node_prev_child
    - roaring::internal::art_iterator_down
    - roaring::internal::art_node_next_child
    linkageType: ''
    returnType: art_node_t
    signature: "art_node_t *art_iterator_neighbor_child(\n    art_iterator_t *iterator,
      const art_inner_node_t *inner_node,\n    bool forward)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - art_iterator_t*
    constantsTouched: []
    func_position:
      end: 10715
      start: 10706
    functionDepth: 1
    functionLinenumber: 10706
    functionLinenumberEnd: 10715
    functionName: roaring::internal::art_iterator_up
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_iterator_node
    linkageType: ''
    returnType: bool
    signature: bool art_iterator_up(art_iterator_t *iterator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_iterator_up
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10720,1
    - Dst: roaring::internal::art_iterator_invalid_loc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10722,1
    - Dst: roaring::internal::art_iterator_move
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - iterator
    - forward
    argTypes:
    - art_iterator_t*
    - bool
    constantsTouched: []
    func_position:
      end: 10725
      start: 10719
    functionDepth: 2
    functionLinenumber: 10719
    functionLinenumberEnd: 10725
    functionName: roaring::internal::art_iterator_up_and_move
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_iterator_invalid_loc
    - roaring::internal::art_iterator_move
    - roaring::internal::art_iterator_up
    linkageType: ''
    returnType: bool
    signature: bool art_iterator_up_and_move(art_iterator_t *iterator, bool forward)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10731,1
    - Dst: roaring::internal::art_node_next_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10734,1
    - Dst: roaring::internal::art_node_prev_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10736,1
    - Dst: roaring::internal::art_iterator_down
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10738,1
    - Dst: roaring::internal::art_iterator_valid_loc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10745,1
    - Dst: CAST_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - node
    - iterator
    - first
    argTypes:
    - art_node_t*
    - art_iterator_t*
    - bool
    constantsTouched: []
    func_position:
      end: 10746
      start: 10729
    functionDepth: 3
    functionLinenumber: 10729
    functionLinenumberEnd: 10746
    functionName: roaring::internal::art_node_init_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_iterator_down
    - CAST_LEAF
    - roaring::internal::art_node_next_child
    - roaring::internal::art_iterator_valid_loc
    - roaring::internal::art_is_leaf
    - roaring::internal::art_node_prev_child
    linkageType: ''
    returnType: bool
    signature: "bool art_node_init_iterator(const art_node_t *node,\n                                   art_iterator_t
      *iterator, bool first)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10749,1
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10749,1
    - Dst: roaring::internal::art_iterator_invalid_loc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10753,1
    - Dst: roaring::internal::art_iterator_neighbor_child
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10757,1
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10758,1
    - Dst: roaring::internal::art_node_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10762,1
    - Dst: roaring::internal::art_iterator_up_and_move
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - iterator
    - forward
    argTypes:
    - art_iterator_t*
    - bool
    constantsTouched: []
    func_position:
      end: 10766
      start: 10748
    functionDepth: 4
    functionLinenumber: 10748
    functionLinenumberEnd: 10766
    functionName: roaring::internal::art_iterator_move
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::art_iterator_invalid_loc
    - roaring::internal::art_iterator_node
    - roaring::internal::art_iterator_up_and_move
    - roaring::internal::art_iterator_neighbor_child
    - roaring::internal::art_node_init_iterator
    - roaring::internal::art_is_leaf
    linkageType: ''
    returnType: bool
    signature: bool art_iterator_move(art_iterator_t *iterator, bool forward)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10773,1
    - Dst: roaring::internal::art_iterator_up_and_move
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10782,1
    - Dst: roaring::internal::art_node_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10785,1
    - Dst: roaring::internal::art_node_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10791,1
    - Dst: roaring::internal::art_iterator_up_and_move
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10794,1
    - Dst: roaring::internal::art_iterator_down
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10798,1
    - Dst: roaring::internal::art_node_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10799,1
    - Dst: roaring::internal::art_iterator_down
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10802,1
    - Dst: CAST_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10805,1
    - Dst: roaring::internal::art_compare_keys
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10806,1
    - Dst: roaring::internal::art_iterator_valid_loc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10808,1
    - Dst: roaring::internal::art_iterator_up_and_move
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10812,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - node
    - iterator
    - key
    argTypes:
    - art_node_t*
    - art_iterator_t*
    - art_key_chunk_t[]
    constantsTouched: []
    func_position:
      end: 10813
      start: 10770
    functionDepth: 4
    functionLinenumber: 10770
    functionLinenumberEnd: 10813
    functionName: roaring::internal::art_node_iterator_lower_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_iterator_down
    - CAST_LEAF
    - roaring::internal::art_node_lower_bound
    - roaring::internal::art_compare_keys
    - roaring::internal::art_iterator_up_and_move
    - roaring::internal::art_node_init_iterator
    - roaring::internal::art_iterator_valid_loc
    - roaring::internal::art_is_leaf
    linkageType: ''
    returnType: bool
    signature: "bool art_node_iterator_lower_bound(const art_node_t *node,\n                                          art_iterator_t
      *iterator,\n                                          const art_key_chunk_t
      key[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10817,1
    - Dst: roaring::internal::art_node_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - art
    - first
    argTypes:
    - art_t*
    - bool
    constantsTouched: []
    func_position:
      end: 10823
      start: 10815
    functionDepth: 4
    functionLinenumber: 10815
    functionLinenumberEnd: 10823
    functionName: roaring::internal::art_init_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    - roaring::internal::art_node_init_iterator
    linkageType: ''
    returnType: art_iterator_t
    signature: art_iterator_t art_init_iterator(const art_t *art, bool first)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_iterator_move
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - art_iterator_t*
    constantsTouched: []
    func_position:
      end: 10827
      start: 10825
    functionDepth: 5
    functionLinenumber: 10825
    functionLinenumberEnd: 10827
    functionName: roaring::internal::art_iterator_next
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_iterator_move
    linkageType: ''
    returnType: bool
    signature: bool art_iterator_next(art_iterator_t *iterator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_iterator_move
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - art_iterator_t*
    constantsTouched: []
    func_position:
      end: 10831
      start: 10829
    functionDepth: 5
    functionLinenumber: 10829
    functionLinenumberEnd: 10831
    functionName: roaring::internal::art_iterator_prev
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_iterator_move
    linkageType: ''
    returnType: bool
    signature: bool art_iterator_prev(art_iterator_t *iterator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_node_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10840,1
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10840,1
    - Dst: roaring::internal::art_iterator_up
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10848,1
    - Dst: roaring::internal::art_iterator_invalid_loc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10851,1
    - Dst: roaring::internal::art_node_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10853,1
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10853,1
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10860,1
    - Dst: roaring::internal::art_compare_prefix
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10862,1
    - Dst: roaring::internal::art_node_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10866,1
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10866,1
    - Dst: roaring::internal::art_node_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10869,1
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - iterator
    - key
    argTypes:
    - art_iterator_t*
    - art_key_chunk_t*
    constantsTouched: []
    func_position:
      end: 10871
      start: 10833
    functionDepth: 5
    functionLinenumber: 10833
    functionLinenumberEnd: 10871
    functionName: roaring::internal::art_iterator_lower_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_iterator_invalid_loc
    - roaring::internal::art_iterator_node
    - roaring::internal::art_node_init_iterator
    - roaring::internal::art_node_iterator_lower_bound
    - roaring::internal::art_iterator_up
    - roaring::internal::art_compare_prefix
    linkageType: ''
    returnType: bool
    signature: "bool art_iterator_lower_bound(art_iterator_t *iterator,\n                              const
      art_key_chunk_t *key)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10875,1
    - Dst: roaring::internal::art_node_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - art
    - key
    argTypes:
    - art_t*
    - art_key_chunk_t*
    constantsTouched: []
    func_position:
      end: 10880
      start: 10873
    functionDepth: 5
    functionLinenumber: 10873
    functionLinenumberEnd: 10880
    functionName: roaring::internal::art_lower_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    - roaring::internal::art_node_iterator_lower_bound
    linkageType: ''
    returnType: art_iterator_t
    signature: art_iterator_t art_lower_bound(const art_t *art, const art_key_chunk_t
      *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10884,1
    - Dst: roaring::internal::art_node_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10886,1
    - Dst: roaring::internal::art_compare_keys
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10887,1
    - Dst: roaring::internal::art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - art
    - key
    argTypes:
    - art_t*
    - art_key_chunk_t*
    constantsTouched: []
    func_position:
      end: 10892
      start: 10882
    functionDepth: 6
    functionLinenumber: 10882
    functionLinenumberEnd: 10892
    functionName: roaring::internal::art_upper_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_iterator_next
    - memset
    - roaring::internal::art_compare_keys
    - roaring::internal::art_node_iterator_lower_bound
    linkageType: ''
    returnType: art_iterator_t
    signature: art_iterator_t art_upper_bound(const art_t *art, const art_key_chunk_t
      *key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10897,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10898,1
    - Dst: roaring::internal::art_node_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - art
    - iterator
    - key
    - val
    argTypes:
    - art_t*
    - art_iterator_t*
    - art_key_chunk_t*
    - art_val_t*
    constantsTouched: []
    func_position:
      end: 10902
      start: 10894
    functionDepth: 5
    functionLinenumber: 10894
    functionLinenumberEnd: 10902
    functionName: roaring::internal::art_iterator_insert
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - assert
    - roaring::internal::art_node_iterator_lower_bound
    - roaring::internal::art_insert
    linkageType: ''
    returnType: void
    signature: "void art_iterator_insert(art_t *art, art_iterator_t *iterator,\n                         const
      art_key_chunk_t *key, art_val_t *val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10910,1
    - Dst: roaring::internal::art_iterator_invalid_loc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10917,1
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10923,1
    - Dst: roaring::internal::art_node_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10927,1
    - Dst: roaring::internal::art_iterator_up
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10933,1
    - Dst: roaring::internal::art_iterator_node
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10936,1
    - Dst: roaring::internal::art_replace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10939,1
    - Dst: roaring::internal::art_node_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - art
    - iterator
    argTypes:
    - art_t*
    - art_iterator_t*
    constantsTouched: []
    func_position:
      end: 10954
      start: 10905
    functionDepth: 5
    functionLinenumber: 10905
    functionLinenumberEnd: 10954
    functionName: roaring::internal::art_iterator_erase
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_iterator_invalid_loc
    - roaring::internal::art_iterator_node
    - memcpy
    - roaring::internal::art_node_erase
    - roaring::internal::art_node_iterator_lower_bound
    - roaring::internal::art_iterator_up
    - roaring::internal::art_replace
    linkageType: ''
    returnType: art_val_t
    signature: art_val_t *art_iterator_erase(art_t *art, art_iterator_t *iterator)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10959,1
    - Dst: roaring::internal::art_is_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10961,1
    - Dst: CAST_LEAF
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10962,1
    - Dst: roaring::internal::art_compare_prefix
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10963,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10965,1
    - Dst: art_internal_validate_t::validate_cb
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10970,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10980,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10983,1
    - Dst: roaring::internal::art_node4_internal_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10989,1
    - Dst: roaring::internal::art_node16_internal_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:10995,1
    - Dst: roaring::internal::art_node48_internal_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11001,1
    - Dst: roaring::internal::art_node256_internal_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11007,1
    - Dst: roaring::internal::art_validate_fail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11013,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - node
    - validator
    argTypes:
    - art_node_t*
    - art_internal_validate_t
    constantsTouched: []
    func_position:
      end: 11017
      start: 10956
    functionDepth: 2
    functionLinenumber: 10956
    functionLinenumberEnd: 11017
    functionName: roaring::internal::art_internal_validate_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - CAST_LEAF
    - memcpy
    - roaring::internal::art_node4_internal_validate
    - roaring::internal::art_node48_internal_validate
    - roaring::internal::art_validate_fail
    - roaring::internal::art_node256_internal_validate
    - roaring::internal::art_node16_internal_validate
    - art_internal_validate_t::validate_cb
    - roaring::internal::art_is_leaf
    - roaring::internal::art_compare_prefix
    linkageType: ''
    returnType: bool
    signature: "bool art_internal_validate_at(const art_node_t *node,\n                                     art_internal_validate_t
      validator)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::art_internal_validate_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - art
    - reason
    - validate_cb
    argTypes:
    - art_t*
    - char**
    - art_validate_cb_t
    constantsTouched: []
    func_position:
      end: 11037
      start: 11019
    functionDepth: 3
    functionLinenumber: 11019
    functionLinenumberEnd: 11037
    functionName: roaring::internal::art_internal_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::art_internal_validate_at
    linkageType: ''
    returnType: bool
    signature: "bool art_internal_validate(const art_t *art, const char **reason,\n
      \                          art_validate_cb_t validate_cb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11077,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 11084
      start: 11074
    functionDepth: 0
    functionLinenumber: 11074
    functionLinenumberEnd: 11084
    functionName: roaring::internal::bitset_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    linkageType: ''
    returnType: bitset_t
    signature: bitset_t *bitset_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11091,1
    - Dst: roaring_calloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11097,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 11103
      start: 11088
    functionDepth: 0
    functionLinenumber: 11088
    functionLinenumberEnd: 11103
    functionName: roaring::internal::bitset_create_with_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - roaring_calloc
    - roaring_free
    linkageType: ''
    returnType: bitset_t
    signature: bitset_t *bitset_create_with_capacity(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11109,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11112,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11114,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11116,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11121
      start: 11106
    functionDepth: 0
    functionLinenumber: 11106
    functionLinenumberEnd: 11121
    functionName: roaring::internal::bitset_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - memcpy
    - roaring_free
    linkageType: ''
    returnType: bitset_t
    signature: bitset_t *bitset_copy(const bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11125
      start: 11123
    functionDepth: 0
    functionLinenumber: 11123
    functionLinenumberEnd: 11125
    functionName: roaring::internal::bitset_clear
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void bitset_clear(bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11129
      start: 11127
    functionDepth: 0
    functionLinenumber: 11127
    functionLinenumberEnd: 11129
    functionName: roaring::internal::bitset_fill
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void bitset_fill(bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_resize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11136,1
    - Dst: roaring::internal::bitset_resize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - bitset
    - s
    argTypes:
    - bitset_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 11155
      start: 11131
    functionDepth: 1
    functionLinenumber: 11131
    functionLinenumberEnd: 11155
    functionName: roaring::internal::bitset_shift_left
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_resize
    linkageType: ''
    returnType: void
    signature: void bitset_shift_left(bitset_t *bitset, size_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_resize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11166,1
    - Dst: roaring::internal::bitset_resize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - bitset
    - s
    argTypes:
    - bitset_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 11178
      start: 11157
    functionDepth: 1
    functionLinenumber: 11157
    functionLinenumberEnd: 11178
    functionName: roaring::internal::bitset_shift_right
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_resize
    linkageType: ''
    returnType: void
    signature: void bitset_shift_right(bitset_t *bitset, size_t s)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11185,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11187
      start: 11181
    functionDepth: 0
    functionLinenumber: 11181
    functionLinenumberEnd: 11187
    functionName: roaring::internal::bitset_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void bitset_free(bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11206,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11214,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - bitset
    - newarraysize
    - padwithzeroes
    argTypes:
    - bitset_t*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 11218
      start: 11191
    functionDepth: 0
    functionLinenumber: 11191
    functionLinenumberEnd: 11218
    functionName: roaring::internal::bitset_resize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - memset
    - roaring_realloc
    linkageType: ''
    returnType: bool
    signature: bool bitset_resize(bitset_t *bitset, size_t newarraysize, bool padwithzeroes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11224,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11225,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11226,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11227,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11228,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11229,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11230,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11231,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11234,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11235,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11236,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11237,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11243
      start: 11220
    functionDepth: 1
    functionLinenumber: 11220
    functionLinenumberEnd: 11243
    functionName: roaring::internal::bitset_count
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: size_t
    signature: size_t bitset_count(const bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_trailing_zeroes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11269
      start: 11261
    functionDepth: 1
    functionLinenumber: 11261
    functionLinenumberEnd: 11269
    functionName: roaring::internal::bitset_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_trailing_zeroes
    linkageType: ''
    returnType: size_t
    signature: size_t bitset_minimum(const bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11286,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - bitset
    - newarraysize
    argTypes:
    - bitset_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 11297
      start: 11271
    functionDepth: 0
    functionLinenumber: 11271
    functionLinenumberEnd: 11297
    functionName: roaring::internal::bitset_grow
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    - roaring_realloc
    linkageType: ''
    returnType: bool
    signature: bool bitset_grow(bitset_t *bitset, size_t newarraysize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_leading_zeroes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11307
      start: 11299
    functionDepth: 1
    functionLinenumber: 11299
    functionLinenumberEnd: 11307
    functionName: roaring::internal::bitset_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_leading_zeroes
    linkageType: ''
    returnType: size_t
    signature: size_t bitset_maximum(const bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - CBITSET_RESTRICT
    - CBITSET_RESTRICT
    argTypes:
    - bitset_t*
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11321
      start: 11312
    functionDepth: 0
    functionLinenumber: 11312
    functionLinenumberEnd: 11321
    functionName: roaring::internal::bitsets_disjoint
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitsets_disjoint(const bitset_t *CBITSET_RESTRICT b1,\n                      const
      bitset_t *CBITSET_RESTRICT b2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - CBITSET_RESTRICT
    - CBITSET_RESTRICT
    argTypes:
    - bitset_t*
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11336
      start: 11327
    functionDepth: 0
    functionLinenumber: 11327
    functionLinenumberEnd: 11336
    functionName: roaring::internal::bitsets_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitsets_intersect(const bitset_t *CBITSET_RESTRICT b1,\n                       const
      bitset_t *CBITSET_RESTRICT b2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - b
    - starting_loc
    argTypes:
    - bitset_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 11347
      start: 11339
    functionDepth: 0
    functionLinenumber: 11339
    functionLinenumberEnd: 11347
    functionName: roaring::internal::any_bits_set
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool any_bits_set(const bitset_t *b, size_t starting_loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::any_bits_set
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - CBITSET_RESTRICT
    - CBITSET_RESTRICT
    argTypes:
    - bitset_t*
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11368
      start: 11352
    functionDepth: 1
    functionLinenumber: 11352
    functionLinenumberEnd: 11368
    functionName: roaring::internal::bitset_contains_all
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::any_bits_set
    linkageType: ''
    returnType: bool
    signature: "bool bitset_contains_all(const bitset_t *CBITSET_RESTRICT b1,\n                         const
      bitset_t *CBITSET_RESTRICT b2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11377,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11378,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11379,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11380,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11383,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11388,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11389,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11390,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11391,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11394,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11399,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11400,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11401,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11402,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - CBITSET_RESTRICT
    - CBITSET_RESTRICT
    argTypes:
    - bitset_t*
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11409
      start: 11370
    functionDepth: 1
    functionLinenumber: 11370
    functionLinenumberEnd: 11409
    functionName: roaring::internal::bitset_union_count
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_union_count(const bitset_t *CBITSET_RESTRICT b1,\n                          const
      bitset_t *CBITSET_RESTRICT b2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - CBITSET_RESTRICT
    - CBITSET_RESTRICT
    argTypes:
    - bitset_t*
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11433
      start: 11424
    functionDepth: 1
    functionLinenumber: 11424
    functionLinenumberEnd: 11433
    functionName: roaring::internal::bitset_intersection_count
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_intersection_count(const bitset_t *CBITSET_RESTRICT
      b1,\n                                 const bitset_t *CBITSET_RESTRICT b2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11452,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - CBITSET_RESTRICT
    - CBITSET_RESTRICT
    argTypes:
    - bitset_t*
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11458
      start: 11445
    functionDepth: 1
    functionLinenumber: 11445
    functionLinenumberEnd: 11458
    functionName: roaring::internal::bitset_difference_count
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_difference_count(const bitset_t *CBITSET_RESTRICT b1,\n
      \                              const bitset_t *CBITSET_RESTRICT b2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11484,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11488,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - CBITSET_RESTRICT
    - CBITSET_RESTRICT
    argTypes:
    - bitset_t*
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11496
      start: 11477
    functionDepth: 1
    functionLinenumber: 11477
    functionLinenumberEnd: 11496
    functionName: roaring::internal::bitset_symmetric_difference_count
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_symmetric_difference_count(const bitset_t *CBITSET_RESTRICT
      b1,\n                                         const bitset_t *CBITSET_RESTRICT
      b2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:11508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 11516
      start: 11498
    functionDepth: 0
    functionLinenumber: 11498
    functionLinenumberEnd: 11516
    functionName: roaring::internal::bitset_trim
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_realloc
    linkageType: ''
    returnType: bool
    signature: bool bitset_trim(bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12105,1
    - Dst: _mm512_loadu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12106,1
    - Dst: _mm512_maskz_compress_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12111,1
    - Dst: _mm512_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12116,1
    - Dst: _mm512_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12116,1
    - Dst: _mm512_cvtepi8_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12117,1
    - Dst: _mm512_extracti32x4_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12117,1
    - Dst: _mm512_cvtepi8_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12118,1
    - Dst: _mm512_extracti32x4_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12118,1
    - Dst: _mm512_cvtepi8_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12119,1
    - Dst: _mm512_extracti32x4_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12119,1
    - Dst: _mm512_cvtepi8_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12120,1
    - Dst: _mm512_extracti32x4_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12120,1
    - Dst: _mm512_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12122,1
    - Dst: _mm512_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12123,1
    - Dst: _mm512_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12124,1
    - Dst: _mm512_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12125,1
    - Dst: _mm512_storeu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12126,1
    - Dst: _mm512_storeu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12127,1
    - Dst: _mm512_storeu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12128,1
    - Dst: _mm512_storeu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12129,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - words
    - length
    - vout
    - outcapacity
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint32_t*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 12154
      start: 12099
    functionDepth: 0
    functionLinenumber: 12099
    functionLinenumberEnd: 12154
    functionName: roaring::api::bitset_extract_setbits_avx512
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm512_storeu_si512
    - memcpy
    - _mm512_loadu_si512
    - _mm512_maskz_compress_epi8
    - _mm512_add_epi32
    - _mm512_extracti32x4_epi32
    - _mm512_set1_epi32
    - _mm512_cvtepi8_epi32
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_extract_setbits_avx512(const uint64_t *words, size_t
      length,\n                                     uint32_t *vout, size_t outcapacity,\n
      \                                    uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12165,1
    - Dst: _mm512_loadu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12166,1
    - Dst: _mm512_maskz_compress_epi8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12171,1
    - Dst: _mm512_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12176,1
    - Dst: _mm512_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12176,1
    - Dst: _mm512_cvtepi8_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12177,1
    - Dst: _mm512_extracti32x8_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12177,1
    - Dst: _mm512_cvtepi8_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12178,1
    - Dst: _mm512_extracti32x8_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12178,1
    - Dst: _mm512_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12180,1
    - Dst: _mm512_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12181,1
    - Dst: _mm512_storeu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12183,1
    - Dst: _mm512_storeu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12184,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - array
    - length
    - vout
    - capacity
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 12207
      start: 12158
    functionDepth: 0
    functionLinenumber: 12158
    functionLinenumberEnd: 12207
    functionName: roaring::api::bitset_extract_setbits_avx512_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm512_cvtepi8_epi16
    - _mm512_storeu_si512
    - memcpy
    - _mm512_loadu_si512
    - _mm512_set1_epi16
    - _mm512_maskz_compress_epi8
    - _mm512_add_epi16
    - _mm512_extracti32x8_epi32
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_extract_setbits_avx512_uint16(const uint64_t *array,\n
      \                                           size_t length, uint16_t *vout,\n
      \                                           size_t capacity, uint16_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12216,1
    - Dst: _mm256_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12217,1
    - Dst: _mm256_set1_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12218,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12224,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12232,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12234,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12237,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12238,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12239,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12240,1
    - Dst: _mm256_storeu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12241,1
    - Dst: _mm256_storeu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12243,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12258,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - words
    - length
    - out
    - outcapacity
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint32_t*
    - size_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 12266
      start: 12211
    functionDepth: 0
    functionLinenumber: 12211
    functionLinenumberEnd: 12266
    functionName: roaring::api::bitset_extract_setbits_avx2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm256_set1_epi32
    - memcpy
    - _mm256_add_epi32
    - _mm256_storeu_si256
    - _mm256_loadu_si256
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 bitset_extract_setbits_avx2(const uint64_t *words,
      size_t length,\n                                   uint32_t *out, size_t outcapacity,\n
      \                                  uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - words
    - length
    - out
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 12290
      start: 12270
    functionDepth: 0
    functionLinenumber: 12270
    functionLinenumberEnd: 12290
    functionName: roaring::api::bitset_extract_setbits
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_extract_setbits(const uint64_t *words, size_t length,\n
      \                             uint32_t *out, uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - words1
    - words2
    - length
    - out
    - base
    argTypes:
    - uint64_t*
    - uint64_t*
    - size_t
    - uint16_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 12307
      start: 12292
    functionDepth: 0
    functionLinenumber: 12292
    functionLinenumberEnd: 12307
    functionName: roaring::api::bitset_extract_intersection_setbits_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_extract_intersection_setbits_uint16(\n    const uint64_t
      *__restrict__ words1, const uint64_t *__restrict__ words2,\n    size_t length,
      uint16_t *out, uint16_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12327,1
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12328,1
    - Dst: _mm_set1_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12329,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12336,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12343,1
    - Dst: _mm_loadu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12345,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12349,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12350,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12351,1
    - Dst: _mm_add_epi16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12352,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12353,1
    - Dst: _mm_storeu_si128
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12355,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - words
    - length
    - out
    - outcapacity
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint16_t*
    - size_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 12373
      start: 12322
    functionDepth: 0
    functionLinenumber: 12322
    functionLinenumberEnd: 12373
    functionName: roaring::api::bitset_extract_setbits_sse_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi16
    - _mm_loadu_si128
    - _mm_storeu_si128
    - _mm_add_epi16
    linkageType: ''
    returnType: CROARING_TARGET_AVX2
    signature: "CROARING_TARGET_AVX2 bitset_extract_setbits_sse_uint16(const uint64_t
      *words, size_t length,\n                                         uint16_t *out,
      size_t outcapacity,\n                                         uint16_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - words
    - length
    - out
    - base
    argTypes:
    - uint64_t*
    - size_t
    - uint16_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 12400
      start: 12386
    functionDepth: 0
    functionLinenumber: 12386
    functionLinenumberEnd: 12400
    functionName: roaring::api::bitset_extract_setbits_uint16
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_extract_setbits_uint16(const uint64_t *words, size_t
      length,\n                                     uint16_t *out, uint16_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12429
      start: 12404
    functionDepth: 0
    functionLinenumber: 12404
    functionLinenumberEnd: 12429
    functionName: roaring::api::_asm_bitset_set_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _asm_bitset_set_list_withcard(uint64_t *words,\n                                                     uint64_t
      card,\n                                                     const uint16_t *list,\n
      \                                                    uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12485
      start: 12431
    functionDepth: 0
    functionLinenumber: 12431
    functionLinenumberEnd: 12485
    functionName: roaring::api::_asm_bitset_set_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _asm_bitset_set_list(uint64_t *words, const uint16_t *list,\n
      \                                       uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12512
      start: 12487
    functionDepth: 0
    functionLinenumber: 12487
    functionLinenumberEnd: 12512
    functionName: roaring::api::_asm_bitset_clear_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _asm_bitset_clear_list(uint64_t *words, uint64_t card,\n
      \                                             const uint16_t *list,\n                                              uint64_t
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12530
      start: 12514
    functionDepth: 0
    functionLinenumber: 12514
    functionLinenumberEnd: 12530
    functionName: roaring::api::_scalar_bitset_clear_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _scalar_bitset_clear_list(uint64_t *words, uint64_t card,\n
      \                                                const uint16_t *list,\n                                                 uint64_t
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12549
      start: 12532
    functionDepth: 0
    functionLinenumber: 12532
    functionLinenumberEnd: 12549
    functionName: roaring::api::_scalar_bitset_set_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t _scalar_bitset_set_list_withcard(uint64_t *words,\n                                                        uint64_t
      card,\n                                                        const uint16_t
      *list,\n                                                        uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12565
      start: 12551
    functionDepth: 0
    functionLinenumber: 12551
    functionLinenumberEnd: 12565
    functionName: roaring::api::_scalar_bitset_set_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: "void _scalar_bitset_set_list(uint64_t *words,\n                                           const
      uint16_t *list,\n                                           uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12569,1
    - Dst: roaring::api::_asm_bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12570,1
    - Dst: roaring::api::_scalar_bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12574
      start: 12567
    functionDepth: 1
    functionLinenumber: 12567
    functionLinenumberEnd: 12574
    functionName: roaring::api::bitset_clear_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - croaring_hardware_support
    - roaring::api::_asm_bitset_clear_list
    - roaring::api::_scalar_bitset_clear_list
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_clear_list(uint64_t *words, uint64_t card, const uint16_t
      *list,\n                           uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12578,1
    - Dst: roaring::api::_asm_bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12579,1
    - Dst: roaring::api::_scalar_bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12583
      start: 12576
    functionDepth: 1
    functionLinenumber: 12576
    functionLinenumberEnd: 12583
    functionName: roaring::api::bitset_set_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - croaring_hardware_support
    - roaring::api::_asm_bitset_set_list_withcard
    - roaring::api::_scalar_bitset_set_list_withcard
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_set_list_withcard(uint64_t *words, uint64_t card,\n
      \                                 const uint16_t *list, uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12586,1
    - Dst: roaring::api::_asm_bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12587,1
    - Dst: roaring::api::_scalar_bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12591
      start: 12585
    functionDepth: 1
    functionLinenumber: 12585
    functionLinenumberEnd: 12591
    functionName: roaring::api::bitset_set_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - croaring_hardware_support
    - roaring::api::_scalar_bitset_set_list
    - roaring::api::_asm_bitset_set_list
    linkageType: ''
    returnType: void
    signature: void bitset_set_list(uint64_t *words, const uint16_t *list, uint64_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12608
      start: 12593
    functionDepth: 0
    functionLinenumber: 12593
    functionLinenumberEnd: 12608
    functionName: roaring::api::bitset_clear_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_clear_list(uint64_t *words, uint64_t card, const uint16_t
      *list,\n                           uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12625
      start: 12610
    functionDepth: 0
    functionLinenumber: 12610
    functionLinenumberEnd: 12625
    functionName: roaring::api::bitset_set_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_set_list_withcard(uint64_t *words, uint64_t card,\n
      \                                 const uint16_t *list, uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12639
      start: 12627
    functionDepth: 0
    functionLinenumber: 12627
    functionLinenumberEnd: 12639
    functionName: roaring::api::bitset_set_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: void bitset_set_list(uint64_t *words, const uint16_t *list, uint64_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12655,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - words
    - card
    - list
    - length
    argTypes:
    - uint64_t*
    - uint64_t
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12663
      start: 12646
    functionDepth: 0
    functionLinenumber: 12646
    functionLinenumberEnd: 12663
    functionName: roaring::api::bitset_flip_list_withcard
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t bitset_flip_list_withcard(uint64_t *words, uint64_t card,\n
      \                                  const uint16_t *list, uint64_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - words
    - list
    - length
    argTypes:
    - uint64_t*
    - uint16_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 12677
      start: 12665
    functionDepth: 0
    functionLinenumber: 12665
    functionLinenumberEnd: 12677
    functionName: roaring::api::bitset_flip_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: void
    signature: void bitset_flip_list(uint64_t *words, const uint16_t *list, uint64_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12737,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12744,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - size
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 12754
      start: 12734
    functionDepth: 0
    functionLinenumber: 12734
    functionLinenumberEnd: 12754
    functionName: roaring::internal::array_container_create_given_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 23
    functionsReached:
    - roaring_malloc
    - roaring_free
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_create_given_capacity(int32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12759
      start: 12757
    functionDepth: 0
    functionLinenumber: 12757
    functionLinenumberEnd: 12759
    functionName: roaring::internal::array_container_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 6
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 12771
      start: 12762
    functionDepth: 0
    functionLinenumber: 12762
    functionLinenumberEnd: 12771
    functionName: roaring::internal::array_container_create_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_create_range(uint32_t min, uint32_t
      max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12777,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 12786
      start: 12774
    functionDepth: 0
    functionLinenumber: 12774
    functionLinenumberEnd: 12786
    functionName: array_container_t *array_container_clone(const array_container_t
      *src)
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::internal::array_container_create_given_capacity
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: ALLOW_UNALIGNED array_container_t *array_container_clone(const array_container_t
      *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::count_less
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12795,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12797,1
    - Dst: roaring::internal::array_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12799,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12806,1
    - Dst: roaring::internal::array_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12808,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - c
    - loc
    - hic
    - offset
    argTypes:
    - array_container_t*
    - container_t**
    - container_t**
    - uint16_t
    constantsTouched: []
    func_position:
      end: 12812
      start: 12788
    functionDepth: 0
    functionLinenumber: 12788
    functionLinenumberEnd: 12812
    functionName: roaring::internal::array_container_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_add
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::count_less
    linkageType: ''
    returnType: void
    signature: "void array_container_offset(const array_container_t *c, container_t
      **loc,\n                            container_t **hic, uint16_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12820,1
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12824,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - src
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12829
      start: 12814
    functionDepth: 0
    functionLinenumber: 12814
    functionLinenumberEnd: 12829
    functionName: roaring::internal::array_container_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring_realloc
    - roaring_free
    linkageType: ''
    returnType: int
    signature: int array_container_shrink_to_fit(array_container_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12835,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arr
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12839
      start: 12832
    functionDepth: 0
    functionLinenumber: 12832
    functionLinenumberEnd: 12839
    functionName: roaring::internal::array_container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 9
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void array_container_free(array_container_t *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 12846
      start: 12841
    functionDepth: 0
    functionLinenumber: 12841
    functionLinenumberEnd: 12846
    functionName: roaring::internal::grow_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t grow_capacity(int32_t capacity)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - min
    - max
    argTypes:
    - int32_t
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 12850
      start: 12848
    functionDepth: 0
    functionLinenumber: 12848
    functionLinenumberEnd: 12850
    functionName: roaring::internal::clamp
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t clamp(int32_t val, int32_t min, int32_t max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12862,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12863,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12867,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - container
    - min
    - preserve
    argTypes:
    - array_container_t*
    - int32_t
    - bool
    constantsTouched: []
    func_position:
      end: 12874
      start: 12852
    functionDepth: 0
    functionLinenumber: 12852
    functionLinenumberEnd: 12874
    functionName: roaring::internal::array_container_grow
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 17
    functionsReached:
    - roaring_malloc
    - roaring_realloc
    - roaring_free
    linkageType: ''
    returnType: void
    signature: "void array_container_grow(array_container_t *container, int32_t min,\n
      \                         bool preserve)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12881,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12886
      start: 12877
    functionDepth: 0
    functionLinenumber: 12877
    functionLinenumberEnd: 12886
    functionName: roaring::internal::array_container_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memcpy
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_copy(const array_container_t *src,\n                          array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - arr
    - min
    - max
    - step
    argTypes:
    - array_container_t*
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 12893
      start: 12888
    functionDepth: 0
    functionLinenumber: 12888
    functionLinenumberEnd: 12893
    functionName: roaring::internal::array_container_add_from_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_append
    linkageType: ''
    returnType: void
    signature: "void array_container_add_from_range(array_container_t *arr, uint32_t
      min,\n                                    uint32_t max, uint16_t step)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12905,1
    - Dst: roaring::internal::fast_union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - array_1
    - array_2
    - out
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12909
      start: 12898
    functionDepth: 0
    functionLinenumber: 12898
    functionLinenumberEnd: 12909
    functionName: roaring::internal::array_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::fast_union_uint16
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_union(const array_container_t *array_1,\n                           const
      array_container_t *array_2,\n                           array_container_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12919,1
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12921,1
    - Dst: roaring::internal::difference_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12923,1
    - Dst: roaring::internal::difference_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12928,1
    - Dst: roaring::internal::difference_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - array_1
    - array_2
    - out
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12936
      start: 12915
    functionDepth: 1
    functionLinenumber: 12915
    functionLinenumberEnd: 12936
    functionName: roaring::internal::array_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::difference_uint16
    - roaring::internal::difference_vector16
    - roaring::internal::croaring_hardware_support
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_andnot(const array_container_t *array_1,\n                            const
      array_container_t *array_2,\n                            array_container_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12949,1
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12953,1
    - Dst: roaring::internal::xor_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12955,1
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12959,1
    - Dst: roaring::internal::xor_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - array_1
    - array_2
    - out
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 12967
      start: 12943
    functionDepth: 1
    functionLinenumber: 12943
    functionLinenumberEnd: 12967
    functionName: roaring::internal::array_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::xor_vector16
    - roaring::internal::xor_uint16
    - roaring::internal::croaring_hardware_support
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_container_xor(const array_container_t *array_1,\n                         const
      array_container_t *array_2,\n                         array_container_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 12971
      start: 12969
    functionDepth: 0
    functionLinenumber: 12969
    functionLinenumberEnd: 12971
    functionName: roaring::internal::minimum_int32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t minimum_int32(int32_t a, int32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12985,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12990,1
    - Dst: roaring::internal::intersect_skewed_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12995,1
    - Dst: roaring::internal::intersect_skewed_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:12998,1
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13002,1
    - Dst: roaring::internal::intersect_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13003,1
    - Dst: roaring::internal::intersect_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13006,1
    - Dst: roaring::internal::intersect_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13010,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - array1
    - array2
    - out
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 13014
      start: 12977
    functionDepth: 1
    functionLinenumber: 12977
    functionLinenumberEnd: 13014
    functionName: roaring::internal::array_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::intersect_vector16
    - roaring::internal::intersect_skewed_uint16
    - roaring::internal::croaring_hardware_support
    - roaring::internal::array_container_grow
    - roaring::internal::intersect_uint16
    linkageType: ''
    returnType: void
    signature: "void array_container_intersection(const array_container_t *array1,\n
      \                                 const array_container_t *array2,\n                                  array_container_t
      *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::intersect_skewed_uint16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13023,1
    - Dst: roaring::internal::intersect_skewed_uint16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13026,1
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13030,1
    - Dst: roaring::internal::intersect_vector16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13031,1
    - Dst: roaring::internal::intersect_uint16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13034,1
    - Dst: roaring::internal::intersect_uint16_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - array1
    - array2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 13042
      start: 13018
    functionDepth: 1
    functionLinenumber: 13018
    functionLinenumberEnd: 13042
    functionName: roaring::internal::array_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::intersect_vector16_cardinality
    - roaring::internal::croaring_hardware_support
    - roaring::internal::intersect_uint16_cardinality
    - roaring::internal::intersect_skewed_uint16_cardinality
    linkageType: ''
    returnType: int
    signature: "int array_container_intersection_cardinality(const array_container_t
      *array1,\n                                             const array_container_t
      *array2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::intersect_skewed_uint16_nonempty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13049,1
    - Dst: roaring::internal::intersect_skewed_uint16_nonempty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13052,1
    - Dst: roaring::internal::intersect_uint16_nonempty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - array1
    - array2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 13059
      start: 13044
    functionDepth: 0
    functionLinenumber: 13044
    functionLinenumberEnd: 13059
    functionName: roaring::internal::array_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::intersect_skewed_uint16_nonempty
    - roaring::internal::intersect_uint16_nonempty
    linkageType: ''
    returnType: bool
    signature: "bool array_container_intersect(const array_container_t *array1,\n
      \                              const array_container_t *array2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::intersect_skewed_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13069,1
    - Dst: roaring::internal::intersect_skewed_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13072,1
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13076,1
    - Dst: roaring::internal::intersect_vector16_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13077,1
    - Dst: roaring::internal::intersect_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13080,1
    - Dst: roaring::internal::intersect_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 13088
      start: 13064
    functionDepth: 1
    functionLinenumber: 13064
    functionLinenumberEnd: 13088
    functionName: roaring::internal::array_container_intersection_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::intersect_vector16_inplace
    - roaring::internal::croaring_hardware_support
    - roaring::internal::intersect_skewed_uint16
    - roaring::internal::intersect_uint16
    linkageType: ''
    returnType: void
    signature: "void array_container_intersection_inplace(array_container_t *src_1,\n
      \                                         const array_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::avx512_array_container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13097,1
    - Dst: roaring::internal::array_container_to_uint32_array_vector16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13102,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - vout
    - cont
    - base
    argTypes:
    - void*
    - array_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 13116
      start: 13090
    functionDepth: 1
    functionLinenumber: 13090
    functionLinenumberEnd: 13116
    functionName: roaring::internal::array_container_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::avx512_array_container_to_uint32_array
    - roaring::internal::array_container_to_uint32_array_vector16
    - memcpy
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED array_container_to_uint32_array(void *vout, const
      array_container_t *cont,\n                                    uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13121,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13124,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13125,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13127,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 13130
      start: 13119
    functionDepth: 0
    functionLinenumber: 13119
    functionLinenumberEnd: 13130
    functionName: roaring::internal::array_container_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void array_container_printf(const array_container_t *v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13137,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - v
    - base
    argTypes:
    - array_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 13141
      start: 13132
    functionDepth: 0
    functionLinenumber: 13132
    functionLinenumberEnd: 13141
    functionName: roaring::internal::array_container_printf_as_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void array_container_printf_as_uint32_array(const array_container_t
      *v,\n                                            uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - v
    - reason
    argTypes:
    - array_container_t*
    - char**
    constantsTouched: []
    func_position:
      end: 13183
      start: 13147
    functionDepth: 0
    functionLinenumber: 13147
    functionLinenumberEnd: 13183
    functionName: roaring::internal::array_container_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool array_container_validate(const array_container_t *v, const char
      **reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ac
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 13195
      start: 13186
    functionDepth: 0
    functionLinenumber: 13186
    functionLinenumberEnd: 13195
    functionName: roaring::internal::array_container_number_of_runs
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t array_container_number_of_runs(const array_container_t *ac)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13204,1
    - Dst: roaring::internal::array_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - container
    - buf
    argTypes:
    - array_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 13206
      start: 13203
    functionDepth: 0
    functionLinenumber: 13203
    functionLinenumberEnd: 13206
    functionName: roaring::internal::array_container_write
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_size_in_bytes
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: int32_t array_container_write(const array_container_t *container, char
      *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 13229
      start: 13208
    functionDepth: 0
    functionLinenumber: 13208
    functionLinenumberEnd: 13229
    functionName: roaring::internal::array_container_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_is_subset(const array_container_t *container1,\n
      \                              const array_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13234,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13237,1
    - Dst: roaring::internal::array_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cardinality
    - container
    - buf
    argTypes:
    - int32_t
    - array_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 13240
      start: 13231
    functionDepth: 0
    functionLinenumber: 13231
    functionLinenumberEnd: 13240
    functionName: roaring::internal::array_container_read
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memcpy
    - roaring::internal::array_container_size_in_bytes
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: int32_t
    signature: "int32_t array_container_read(int32_t cardinality, array_container_t
      *container,\n                             const char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - cont
    - base
    - iterator
    - ptr
    argTypes:
    - array_container_t*
    - uint32_t
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 13247
      start: 13242
    functionDepth: 0
    functionLinenumber: 13242
    functionLinenumberEnd: 13247
    functionName: roaring::internal::array_container_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: "bool array_container_iterate(const array_container_t *cont, uint32_t
      base,\n                             roaring_iterator iterator, void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - cont
    - base
    - iterator
    - high_bits
    - ptr
    argTypes:
    - array_container_t*
    - uint32_t
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 13256
      start: 13249
    functionDepth: 0
    functionLinenumber: 13249
    functionLinenumberEnd: 13256
    functionName: roaring::internal::array_container_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: "bool array_container_iterate64(const array_container_t *cont, uint32_t
      base,\n                               roaring_iterator64 iterator, uint64_t
      high_bits,\n                               void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13315
      start: 13312
    functionDepth: 0
    functionLinenumber: 13312
    functionLinenumberEnd: 13315
    functionName: roaring::internal::bitset_container_clear
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void bitset_container_clear(bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13318,1
    - Dst: INT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13321
      start: 13317
    functionDepth: 0
    functionLinenumber: 13317
    functionLinenumberEnd: 13321
    functionName: roaring::internal::bitset_container_set_all
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memset
    - INT64_C
    linkageType: ''
    returnType: void
    signature: void bitset_container_set_all(bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13326,1
    - Dst: roaring_aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13343,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13346,1
    - Dst: roaring::internal::bitset_container_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13351
      start: 13324
    functionDepth: 0
    functionLinenumber: 13324
    functionLinenumberEnd: 13351
    functionName: roaring::internal::bitset_container_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 34
    functionsReached:
    - roaring_malloc
    - roaring::internal::bitset_container_clear
    - roaring_aligned_malloc
    - roaring_free
    linkageType: ''
    returnType: bitset_container_t
    signature: bitset_container_t *bitset_container_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13359
      start: 13354
    functionDepth: 0
    functionLinenumber: 13354
    functionLinenumberEnd: 13359
    functionName: roaring::internal::bitset_container_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 10
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void bitset_container_copy(const bitset_container_t *source,\n                           bitset_container_t
      *dest)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13374,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13375,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13378,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13381,1
    - Dst: roaring::internal::bitset_container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - bitset
    - min
    - max
    - step
    argTypes:
    - bitset_container_t*
    - uint32_t
    - uint32_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 13387
      start: 13361
    functionDepth: 0
    functionLinenumber: 13361
    functionLinenumberEnd: 13387
    functionName: roaring::internal::bitset_container_add_from_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - UINT64_C
    - roaring::internal::bitset_container_add
    linkageType: ''
    returnType: void
    signature: "void bitset_container_add_from_range(bitset_container_t *bitset, uint32_t
      min,\n                                     uint32_t max, uint16_t step)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_aligned_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13393,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13397
      start: 13390
    functionDepth: 0
    functionLinenumber: 13390
    functionLinenumberEnd: 13397
    functionName: roaring::internal::bitset_container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 25
    functionsReached:
    - roaring_aligned_free
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void bitset_container_free(bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13403,1
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13411,1
    - Dst: roaring_aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13419,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13422,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13429
      start: 13400
    functionDepth: 1
    functionLinenumber: 13400
    functionLinenumberEnd: 13429
    functionName: bitset_container_t *bitset_container_clone(const bitset_container_t
      *src)
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring_aligned_malloc
    - roaring_free
    - roaring_malloc
    - roaring::internal::croaring_hardware_support
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: ALLOW_UNALIGNED bitset_container_t *bitset_container_clone(const bitset_container_t
      *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13442,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13444,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13454,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13466,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13472,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13476,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13486,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13488,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - c
    - loc
    - hic
    - offset
    argTypes:
    - bitset_container_t*
    - container_t**
    - container_t**
    - uint16_t
    constantsTouched: []
    func_position:
      end: 13492
      start: 13431
    functionDepth: 0
    functionLinenumber: 13431
    functionLinenumberEnd: 13492
    functionName: roaring::internal::bitset_container_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - memcpy
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_compute_cardinality
    linkageType: ''
    returnType: void
    signature: "void bitset_container_offset(const bitset_container_t *c, container_t
      **loc,\n                             container_t **hic, uint16_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_set_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13496,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitset
    - begin
    - end
    argTypes:
    - bitset_container_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 13499
      start: 13494
    functionDepth: 0
    functionLinenumber: 13494
    functionLinenumberEnd: 13499
    functionName: roaring::internal::bitset_container_set_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_set_range
    - roaring::internal::bitset_container_compute_cardinality
    linkageType: ''
    returnType: void
    signature: "void bitset_container_set_range(bitset_container_t *bitset, uint32_t
      begin,\n                                uint32_t end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13510
      start: 13501
    functionDepth: 0
    functionLinenumber: 13501
    functionLinenumberEnd: 13510
    functionName: roaring::internal::bitset_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_intersect(const bitset_container_t *src_1,\n
      \                               const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13525,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13526,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13527,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13531
      start: 13520
    functionDepth: 1
    functionLinenumber: 13520
    functionLinenumberEnd: 13531
    functionName: roaring::internal::_scalar_bitset_container_compute_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: int
    signature: "int _scalar_bitset_container_compute_cardinality(\n    const bitset_container_t
      *bitset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::avx512_vpopcount
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13537,1
    - Dst: roaring::internal::avx2_harley_seal_popcount256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13543,1
    - Dst: roaring::internal::_scalar_bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13549
      start: 13533
    functionDepth: 3
    functionLinenumber: 13533
    functionLinenumberEnd: 13549
    functionName: roaring::internal::bitset_container_compute_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 16
    functionsReached:
    - roaring::internal::_scalar_bitset_container_compute_cardinality
    - roaring::internal::avx512_vpopcount
    - roaring::internal::avx2_harley_seal_popcount256
    linkageType: ''
    returnType: int
    signature: int bitset_container_compute_cardinality(const bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13553,1
    - Dst: vdupq_n_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13554,1
    - Dst: vdupq_n_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13555,1
    - Dst: vdupq_n_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13556,1
    - Dst: vld1q_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13558,1
    - Dst: vaddq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13559,1
    - Dst: vpaddlq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13559,1
    - Dst: vcntq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13559,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13559,1
    - Dst: vld1q_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13560,1
    - Dst: vaddq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13561,1
    - Dst: vpaddlq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13561,1
    - Dst: vcntq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13561,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13561,1
    - Dst: vld1q_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13562,1
    - Dst: vaddq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13563,1
    - Dst: vpaddlq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13563,1
    - Dst: vcntq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13563,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13563,1
    - Dst: vld1q_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13564,1
    - Dst: vaddq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13565,1
    - Dst: vpaddlq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13565,1
    - Dst: vcntq_u8
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13565,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13565,1
    - Dst: vdupq_n_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13567,1
    - Dst: vaddq_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13568,1
    - Dst: vpaddlq_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13568,1
    - Dst: vpaddlq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13568,1
    - Dst: vaddq_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13569,1
    - Dst: vpaddlq_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13569,1
    - Dst: vpaddlq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13569,1
    - Dst: vaddq_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13570,1
    - Dst: vpaddlq_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13570,1
    - Dst: vpaddlq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13570,1
    - Dst: vaddq_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13571,1
    - Dst: vpaddlq_u32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13571,1
    - Dst: vpaddlq_u16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13571,1
    - Dst: vgetq_lane_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13572,1
    - Dst: vgetq_lane_u64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13573
      start: 13552
    functionDepth: 0
    functionLinenumber: 13552
    functionLinenumberEnd: 13573
    functionName: roaring::internal::bitset_container_compute_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 16
    functionsReached:
    - vdupq_n_u16
    - vaddq_u16
    - vpaddlq_u8
    - vdupq_n_u64
    - vcntq_u8
    - vld1q_u64
    - vpaddlq_u32
    - vaddq_u64
    - vgetq_lane_u64
    - vpaddlq_u16
    - vreinterpretq_u8_u64
    linkageType: ''
    returnType: int
    signature: int bitset_container_compute_cardinality(const bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13582,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13583,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13584,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:13585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 13588
      start: 13578
    functionDepth: 1
    functionLinenumber: 13578
    functionLinenumberEnd: 13588
    functionName: roaring::internal::bitset_container_compute_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 16
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: int
    signature: int bitset_container_compute_cardinality(const bitset_container_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bitset_extract_setbits_avx512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14205,1
    - Dst: roaring::internal::bitset_extract_setbits_avx2
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14210,1
    - Dst: roaring::internal::bitset_extract_setbits
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14213,1
    - Dst: roaring::internal::bitset_extract_setbits
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - out
    - bc
    - base
    argTypes:
    - uint32_t*
    - bitset_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 14219
      start: 14196
    functionDepth: 1
    functionLinenumber: 14196
    functionLinenumberEnd: 14219
    functionName: roaring::internal::bitset_container_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_extract_setbits
    - roaring::internal::bitset_extract_setbits_avx2
    - bitset_extract_setbits_avx512
    linkageType: ''
    returnType: int
    signature: "int bitset_container_to_uint32_array(\n    uint32_t *out,\n    const
      bitset_container_t *bc,\n    uint32_t base\n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14226,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14235,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14238,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 14245
      start: 14225
    functionDepth: 0
    functionLinenumber: 14225
    functionLinenumberEnd: 14245
    functionName: roaring::internal::bitset_container_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void bitset_container_printf(const bitset_container_t * v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14258,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - v
    - base
    argTypes:
    - bitset_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 14267
      start: 14250
    functionDepth: 0
    functionLinenumber: 14250
    functionLinenumberEnd: 14267
    functionName: roaring::internal::bitset_container_printf_as_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void bitset_container_printf_as_uint32_array(const bitset_container_t
      * v, uint32_t base)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - v
    - reason
    argTypes:
    - bitset_container_t*
    - char**
    constantsTouched: []
    func_position:
      end: 14292
      start: 14273
    functionDepth: 0
    functionLinenumber: 14273
    functionLinenumberEnd: 14292
    functionName: roaring::internal::bitset_container_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::bitset_container_compute_cardinality
    linkageType: ''
    returnType: bool
    signature: bool bitset_container_validate(const bitset_container_t *v, const char
      **reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14303,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bc
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 14311
      start: 14296
    functionDepth: 1
    functionLinenumber: 14296
    functionLinenumberEnd: 14311
    functionName: roaring::internal::bitset_container_number_of_runs
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: int
    signature: int bitset_container_number_of_runs(bitset_container_t *bc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14316,1
    - Dst: roaring::internal::bitset_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - container
    - buf
    argTypes:
    - bitset_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 14318
      start: 14314
    functionDepth: 0
    functionLinenumber: 14314
    functionLinenumberEnd: 14318
    functionName: roaring::internal::bitset_container_write
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_size_in_bytes
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t bitset_container_write(const bitset_container_t *container,\n
      \                                 char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14324,1
    - Dst: roaring::internal::bitset_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cardinality
    - container
    - buf
    argTypes:
    - int32_t
    - bitset_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 14326
      start: 14321
    functionDepth: 0
    functionLinenumber: 14321
    functionLinenumberEnd: 14326
    functionName: roaring::internal::bitset_container_read
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::bitset_container_size_in_bytes
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t bitset_container_read(int32_t cardinality, bitset_container_t
      *container,\n\t\tconst char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - cont
    - base
    - iterator
    - ptr
    argTypes:
    - bitset_container_t*
    - uint32_t
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 14340
      start: 14328
    functionDepth: 0
    functionLinenumber: 14328
    functionLinenumberEnd: 14340
    functionName: roaring::internal::bitset_container_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: bool bitset_container_iterate(const bitset_container_t *cont, uint32_t
      base, roaring_iterator iterator, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - cont
    - base
    - iterator
    - high_bits
    - ptr
    argTypes:
    - bitset_container_t*
    - uint32_t
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 14354
      start: 14342
    functionDepth: 0
    functionLinenumber: 14342
    functionLinenumberEnd: 14354
    functionName: roaring::internal::bitset_container_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: bool bitset_container_iterate64(const bitset_container_t *cont, uint32_t
      base, roaring_iterator64 iterator, uint64_t high_bits, void *ptr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_loadu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14364,1
    - Dst: _mm512_loadu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14365,1
    - Dst: _mm512_cmpeq_epi8_mask
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 14372
      start: 14360
    functionDepth: 0
    functionLinenumber: 14360
    functionLinenumberEnd: 14372
    functionName: roaring::internal::_avx512_bitset_container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm512_cmpeq_epi8_mask
    - _mm512_loadu_si512
    linkageType: ''
    returnType: bool
    signature: bool _avx512_bitset_container_equals(const bitset_container_t *container1,
      const bitset_container_t *container2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14381,1
    - Dst: _mm256_loadu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 14389
      start: 14377
    functionDepth: 0
    functionLinenumber: 14377
    functionLinenumberEnd: 14389
    functionName: roaring::internal::_avx2_bitset_container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - _mm256_loadu_si256
    linkageType: ''
    returnType: bool
    signature: bool _avx2_bitset_container_equals(const bitset_container_t *container1,
      const bitset_container_t *container2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: INT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14399,1
    - Dst: roaring::internal::_avx512_bitset_container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14407,1
    - Dst: roaring::internal::_avx2_bitset_container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14412,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14415,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 14418
      start: 14393
    functionDepth: 1
    functionLinenumber: 14393
    functionLinenumberEnd: 14418
    functionName: roaring::internal::bitset_container_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - INT32_C
    - roaring::internal::_avx2_bitset_container_equals
    - memcmp
    - roaring::internal::_avx512_bitset_container_equals
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: ALLOW_UNALIGNED bitset_container_equals(const bitset_container_t *container1,
      const bitset_container_t *container2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 14434
      start: 14420
    functionDepth: 0
    functionLinenumber: 14420
    functionLinenumberEnd: 14434
    functionName: roaring::internal::bitset_container_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_is_subset(const bitset_container_t *container1,\n
      \                         const bitset_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14445,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - container
    - start_rank
    - rank
    - element
    argTypes:
    - bitset_container_t*
    - uint32_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 14465
      start: 14436
    functionDepth: 1
    functionLinenumber: 14436
    functionLinenumberEnd: 14465
    functionName: roaring::internal::bitset_container_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring_hamming
    - assert
    linkageType: ''
    returnType: bool
    signature: bool bitset_container_select(const bitset_container_t *container, uint32_t
      *start_rank, uint32_t rank, uint32_t *element)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - container
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 14478
      start: 14469
    functionDepth: 0
    functionLinenumber: 14469
    functionLinenumberEnd: 14478
    functionName: roaring::internal::bitset_container_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t bitset_container_minimum(const bitset_container_t *container)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - container
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 14490
      start: 14481
    functionDepth: 0
    functionLinenumber: 14481
    functionLinenumberEnd: 14490
    functionName: roaring::internal::bitset_container_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t bitset_container_maximum(const bitset_container_t *container)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14498,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - container
    - x
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 14505
      start: 14493
    functionDepth: 1
    functionLinenumber: 14493
    functionLinenumberEnd: 14505
    functionName: roaring::internal::bitset_container_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: int
    signature: int bitset_container_rank(const bitset_container_t *container, uint16_t
      x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14520,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - container
    - start_rank
    - begin
    - end
    - ans
    argTypes:
    - bitset_container_t*
    - uint64_t
    - uint32_t*
    - uint32_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 14528
      start: 14507
    functionDepth: 1
    functionLinenumber: 14507
    functionLinenumberEnd: 14528
    functionName: roaring::internal::bitset_container_rank_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring_hamming
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bitset_container_rank_many(const bitset_container_t *container,
      uint64_t start_rank, const uint32_t* begin, const uint32_t* end, uint64_t* ans)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_get
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14533,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14538,1
    - Dst: roaring_hamming
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - container
    - x
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 14548
      start: 14532
    functionDepth: 1
    functionLinenumber: 14532
    functionLinenumberEnd: 14548
    functionName: roaring::internal::bitset_container_get_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring_hamming
    - roaring::internal::bitset_container_get
    linkageType: ''
    returnType: int
    signature: int bitset_container_get_index(const bitset_container_t *container,
      uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_trailing_zeroes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - container
    - x
    argTypes:
    - bitset_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 14563
      start: 14551
    functionDepth: 1
    functionLinenumber: 14551
    functionLinenumberEnd: 14563
    functionName: roaring::internal::bitset_container_index_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_trailing_zeroes
    linkageType: ''
    returnType: int
    signature: int bitset_container_index_equalorlarger(const bitset_container_t *container,
      uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 14588
      start: 14586
    functionDepth: 0
    functionLinenumber: 14586
    functionLinenumberEnd: 14588
    functionName: roaring::internal::minimum_uint32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t minimum_uint32(uint32_t a, uint32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14619,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14619,1
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14622,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14622,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14625,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14625,1
    - Dst: roaring::internal::shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14628,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14628,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 14634
      start: 14616
    functionDepth: 0
    functionLinenumber: 14616
    functionLinenumberEnd: 14634
    functionName: roaring::internal::container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 6
    functionsReached:
    - roaring::internal::run_container_free
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - CAST_run
    - CAST_shared
    - assert
    - roaring::internal::shared_container_free
    - CAST_array
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: void
    signature: void container_free(container_t *c, uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14638,1
    - Dst: roaring::internal::bitset_container_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14641,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14641,1
    - Dst: roaring::internal::array_container_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14644,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14644,1
    - Dst: roaring::internal::run_container_printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14647,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - c
    - type
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 14652
      start: 14637
    functionDepth: 0
    functionLinenumber: 14637
    functionLinenumberEnd: 14652
    functionName: roaring::internal::container_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_printf
    - roaring::internal::run_container_printf
    - roaring::internal::bitset_container_printf
    - roaring::internal::container_unwrap_shared
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: void
    signature: void container_printf(const container_t *c, uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14656,1
    - Dst: roaring::internal::bitset_container_printf_as_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14659,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14659,1
    - Dst: roaring::internal::array_container_printf_as_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14662,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14662,1
    - Dst: roaring::internal::run_container_printf_as_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14665,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - c
    - typecode
    - base
    argTypes:
    - container_t*
    - uint8_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 14670
      start: 14654
    functionDepth: 0
    functionLinenumber: 14654
    functionLinenumberEnd: 14670
    functionName: roaring::internal::container_printf_as_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::bitset_container_printf_as_uint32_array
    - const_CAST_array
    - roaring::internal::run_container_printf_as_uint32_array
    - roaring::internal::container_unwrap_shared
    - roaring::internal::array_container_printf_as_uint32_array
    - const_CAST_run
    linkageType: ''
    returnType: void
    signature: "void container_printf_as_uint32_array(const container_t *c, uint8_t
      typecode,\n                                      uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14683,1
    - Dst: croaring_refcount_get
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14684,1
    - Dst: roaring::internal::bitset_container_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14701,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14701,1
    - Dst: roaring::internal::array_container_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14704,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14704,1
    - Dst: roaring::internal::run_container_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14707,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14707,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - container
    - typecode
    - reason
    argTypes:
    - container_t*
    - uint8_t
    - char**
    constantsTouched: []
    func_position:
      end: 14712
      start: 14673
    functionDepth: 1
    functionLinenumber: 14673
    functionLinenumberEnd: 14712
    functionName: roaring::internal::container_internal_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_run
    - roaring::internal::array_container_validate
    - roaring::internal::bitset_container_validate
    - croaring_refcount_get
    - const_CAST_array
    - roaring::internal::run_container_validate
    - const_CAST_shared
    linkageType: ''
    returnType: bool
    signature: "bool container_internal_validate(const container_t *container, uint8_t
      typecode,\n                                 const char **reason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14745,1
    - Dst: croaring_refcount_inc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14746,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14749,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14751,1
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14768,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14769,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - c
    - typecode
    - copy_on_write
    argTypes:
    - container_t*
    - uint8_t*
    - bool
    constantsTouched: []
    func_position:
      end: 14771
      start: 14740
    functionDepth: 1
    functionLinenumber: 14740
    functionLinenumberEnd: 14771
    functionName: roaring::internal::get_copy_of_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::container_clone
    - croaring_refcount_inc
    - CAST_shared
    - assert
    - roaring::internal::container_unwrap_shared
    - roaring_malloc
    linkageType: ''
    returnType: container_t
    signature: "container_t *get_copy_of_container(container_t *c, uint8_t *typecode,\n
      \                                  bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14782,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14782,1
    - Dst: roaring::internal::array_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14784,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14784,1
    - Dst: roaring::internal::run_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14786,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14786,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - c
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 14796
      start: 14777
    functionDepth: 1
    functionLinenumber: 14777
    functionLinenumberEnd: 14796
    functionName: roaring::internal::container_clone
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 7
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::array_container_clone
    - assert
    - roaring::internal::run_container_clone
    - const_CAST_array
    - roaring::internal::bitset_container_clone
    - const_CAST_run
    linkageType: ''
    returnType: container_t
    signature: container_t *container_clone(const container_t *c, uint8_t typecode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14800,1
    - Dst: croaring_refcount_dec
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14803,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14806,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14808,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - sc
    - typecode
    argTypes:
    - shared_container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 14812
      start: 14798
    functionDepth: 1
    functionLinenumber: 14798
    functionLinenumberEnd: 14812
    functionName: roaring::internal::shared_container_extract_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::container_clone
    - croaring_refcount_dec
    - assert
    - roaring_free
    linkageType: ''
    returnType: container_t
    signature: "container_t *shared_container_extract_copy(shared_container_t *sc,\n
      \                                          uint8_t *typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_refcount_dec
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14815,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14816,1
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14817,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - container
    argTypes:
    - shared_container_t*
    constantsTouched: []
    func_position:
      end: 14821
      start: 14814
    functionDepth: 1
    functionLinenumber: 14814
    functionLinenumberEnd: 14821
    functionName: roaring::internal::shared_container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - croaring_refcount_dec
    - assert
    - roaring_free
    - roaring::internal::container_free
    linkageType: ''
    returnType: void
    signature: void shared_container_free(shared_container_t *container)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14867,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14881,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14888,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - c
    - typecode
    - value
    argTypes:
    - container_t*
    - uint8_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 14899
      start: 14862
    functionDepth: 0
    functionLinenumber: 14862
    functionLinenumberEnd: 14899
    functionName: roaring::internal::container_init_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_array
    - assert
    - const_CAST_run
    linkageType: ''
    returnType: roaring_container_iterator_t
    signature: "roaring_container_iterator_t container_init_iterator(const container_t
      *c,\n                                                     uint8_t typecode,\n
      \                                                    uint16_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14906,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14921,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14929,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - c
    - typecode
    - value
    argTypes:
    - container_t*
    - uint8_t
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 14942
      start: 14901
    functionDepth: 0
    functionLinenumber: 14901
    functionLinenumberEnd: 14942
    functionName: roaring::internal::container_init_iterator_last
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_array
    - assert
    - const_CAST_run
    linkageType: ''
    returnType: roaring_container_iterator_t
    signature: "roaring_container_iterator_t container_init_iterator_last(const container_t
      *c,\n                                                          uint8_t typecode,\n
      \                                                         uint16_t *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14949,1
    - Dst: roaring_trailing_zeroes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14966,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14973,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:14986,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15002,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 4
    argNames:
    - c
    - typecode
    - it
    - value
    argTypes:
    - container_t*
    - uint8_t
    - roaring_container_iterator_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 15006
      start: 14944
    functionDepth: 1
    functionLinenumber: 14944
    functionLinenumberEnd: 15006
    functionName: roaring::internal::container_iterator_next
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring_trailing_zeroes
    - assert
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_iterator_next(const container_t *c, uint8_t typecode,\n
      \                            roaring_container_iterator_t *it,\n                             uint16_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15017,1
    - Dst: roaring_leading_zeroes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15029,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15037,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15046,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15060,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 4
    argNames:
    - c
    - typecode
    - it
    - value
    argTypes:
    - container_t*
    - uint8_t
    - roaring_container_iterator_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 15064
      start: 15008
    functionDepth: 1
    functionLinenumber: 15008
    functionLinenumberEnd: 15064
    functionName: roaring::internal::container_iterator_prev
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring_leading_zeroes
    - assert
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_iterator_prev(const container_t *c, uint8_t typecode,\n
      \                            roaring_container_iterator_t *it,\n                             uint16_t
      *value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15069,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15074,1
    - Dst: roaring::internal::bitset_container_index_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15075,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15080,1
    - Dst: roaring::internal::array_container_index_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15081,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15086,1
    - Dst: roaring::internal::run_container_index_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15087,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 5
    argNames:
    - c
    - typecode
    - it
    - value_out
    - val
    argTypes:
    - container_t*
    - uint8_t
    - roaring_container_iterator_t*
    - uint16_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 15100
      start: 15066
    functionDepth: 0
    functionLinenumber: 15066
    functionLinenumberEnd: 15100
    functionName: roaring::internal::container_iterator_lower_bound
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring::internal::container_maximum
    - roaring::internal::array_container_index_equalorlarger
    - roaring::internal::bitset_container_index_equalorlarger
    - assert
    - roaring::internal::run_container_index_equalorlarger
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_iterator_lower_bound(const container_t *c, uint8_t
      typecode,\n                                    roaring_container_iterator_t
      *it,\n                                    uint16_t *value_out, uint16_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15113,1
    - Dst: roaring_trailing_zeroes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15121,1
    - Dst: roaring_trailing_zeroes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15135,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15142,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15157,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15185,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 8
    argNames:
    - c
    - typecode
    - it
    - high16
    - buf
    - count
    - consumed
    - value_out
    argTypes:
    - container_t*
    - uint8_t
    - roaring_container_iterator_t*
    - uint32_t
    - uint32_t*
    - uint32_t
    - uint32_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 15189
      start: 15102
    functionDepth: 1
    functionLinenumber: 15102
    functionLinenumberEnd: 15189
    functionName: roaring::internal::container_iterator_read_into_uint32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring_trailing_zeroes
    - assert
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_iterator_read_into_uint32(const container_t *c, uint8_t
      typecode,\n                                         roaring_container_iterator_t
      *it,\n                                         uint32_t high16, uint32_t *buf,\n
      \                                        uint32_t count, uint32_t *consumed,\n
      \                                        uint16_t *value_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15202,1
    - Dst: roaring_trailing_zeroes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15210,1
    - Dst: roaring_trailing_zeroes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15224,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15231,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15246,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15274,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 8
    argNames:
    - c
    - typecode
    - it
    - high48
    - buf
    - count
    - consumed
    - value_out
    argTypes:
    - container_t*
    - uint8_t
    - roaring_container_iterator_t*
    - uint64_t
    - uint64_t*
    - uint32_t
    - uint32_t*
    - uint16_t*
    constantsTouched: []
    func_position:
      end: 15278
      start: 15191
    functionDepth: 1
    functionLinenumber: 15191
    functionLinenumberEnd: 15278
    functionName: roaring::internal::container_iterator_read_into_uint64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - roaring_trailing_zeroes
    - assert
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool container_iterator_read_into_uint64(const container_t *c, uint8_t
      typecode,\n                                         roaring_container_iterator_t
      *it,\n                                         uint64_t high48, uint64_t *buf,\n
      \                                        uint32_t count, uint32_t *consumed,\n
      \                                        uint16_t *value_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15307,1
    - Dst: roaring::internal::bitset_container_set
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ac
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 15311
      start: 15306
    functionDepth: 0
    functionLinenumber: 15306
    functionLinenumberEnd: 15311
    functionName: roaring::internal::bitset_container_from_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 9
    functionsReached:
    - roaring::internal::bitset_container_set
    - roaring::internal::bitset_container_create
    linkageType: ''
    returnType: bitset_container_t
    signature: bitset_container_t *bitset_container_from_array(const array_container_t
      *ac)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15315,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arr
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 15322
      start: 15313
    functionDepth: 0
    functionLinenumber: 15313
    functionLinenumberEnd: 15322
    functionName: roaring::internal::bitset_container_from_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_set_lenrange
    linkageType: ''
    returnType: bitset_container_t
    signature: bitset_container_t *bitset_container_from_run(const run_container_t
      *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15326,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - arr
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 15337
      start: 15324
    functionDepth: 0
    functionLinenumber: 15324
    functionLinenumberEnd: 15337
    functionName: roaring::internal::array_container_from_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_cardinality
    - roaring::internal::array_container_create_given_capacity
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_from_run(const run_container_t *arr)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15341,1
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15345,1
    - Dst: bitset_extract_setbits_avx512_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15346,1
    - Dst: roaring::internal::bitset_extract_setbits_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15355,1
    - Dst: roaring::internal::bitset_extract_setbits_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bits
    argTypes:
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 15365
      start: 15339
    functionDepth: 1
    functionLinenumber: 15339
    functionLinenumberEnd: 15365
    functionName: roaring::internal::array_container_from_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 24
    functionsReached:
    - roaring::internal::bitset_extract_setbits_uint16
    - roaring::internal::croaring_hardware_support
    - roaring::internal::array_container_create_given_capacity
    - bitset_extract_setbits_avx512_uint16
    linkageType: ''
    returnType: array_container_t
    signature: array_container_t *array_container_from_bitset(const bitset_container_t
      *bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rc
    - s
    - e
    argTypes:
    - run_container_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 15372
      start: 15368
    functionDepth: 0
    functionLinenumber: 15368
    functionLinenumberEnd: 15372
    functionName: roaring::internal::add_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_run(run_container_t *rc, int s, int e)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15376,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15385,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 15394
      start: 15374
    functionDepth: 0
    functionLinenumber: 15374
    functionLinenumberEnd: 15394
    functionName: roaring::internal::run_container_from_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::add_run
    - roaring::internal::run_container_create_given_capacity
    linkageType: ''
    returnType: run_container_t
    signature: run_container_t *run_container_from_array(const array_container_t *c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15406,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15417,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15422,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - rc
    - card
    - resulttype
    argTypes:
    - run_container_t*
    - int32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 15431
      start: 15402
    functionDepth: 0
    functionLinenumber: 15402
    functionLinenumberEnd: 15431
    functionName: roaring::internal::convert_to_bitset_or_array_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_set_lenrange
    - assert
    linkageType: ''
    returnType: container_t
    signature: "container_t *convert_to_bitset_or_array_container(run_container_t
      *rc,\n                                                  int32_t card,\n                                                  uint8_t
      *resulttype)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15459,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15474,1
    - Dst: roaring::internal::bitset_set_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - c
    - typecode_after
    argTypes:
    - run_container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 15484
      start: 15438
    functionDepth: 0
    functionLinenumber: 15438
    functionLinenumberEnd: 15484
    functionName: roaring::internal::convert_run_to_efficient_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 11
    functionsReached:
    - roaring::internal::bitset_set_range
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_create
    linkageType: ''
    returnType: container_t
    signature: "container_t *convert_run_to_efficient_container(run_container_t *c,\n
      \                                               uint8_t *typecode_after)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15489,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - typecode_after
    argTypes:
    - run_container_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 15492
      start: 15487
    functionDepth: 0
    functionLinenumber: 15487
    functionLinenumberEnd: 15492
    functionName: roaring::internal::convert_run_to_efficient_container_and_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 15
    functionsReached:
    - roaring::internal::run_container_free
    - roaring::internal::convert_run_to_efficient_container
    linkageType: ''
    returnType: container_t
    signature: "container_t *convert_run_to_efficient_container_and_free(\n    run_container_t
      *c, uint8_t *typecode_after)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15505,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15505,1
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15507,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15512,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15525,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15529,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15534,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15539,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15541,1
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15543,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15548,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15562,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15563,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15568,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15572,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15573,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15583,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15587,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15589,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15590,1
    - Dst: roaring::internal::add_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15596,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15601,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 3
    argNames:
    - c
    - typecode_original
    - typecode_after
    argTypes:
    - container_t*
    - uint8_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 15605
      start: 15501
    functionDepth: 0
    functionLinenumber: 15501
    functionLinenumberEnd: 15605
    functionName: roaring::internal::convert_run_optimize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::array_container_free
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - UINT64_C
    - assert
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::container_free
    - roaring::internal::convert_run_to_efficient_container
    - roaring::internal::add_run
    - CAST_array
    - CAST_run
    linkageType: ''
    returnType: container_t
    signature: "container_t *convert_run_optimize(container_t *c, uint8_t typecode_original,\n
      \                                 uint8_t *typecode_after)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15610,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15616,1
    - Dst: roaring::internal::bitset_lenrange_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15621,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15622,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15626,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - run
    - min
    - max
    - typecode_after
    argTypes:
    - run_container_t*
    - uint32_t
    - uint32_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 15632
      start: 15607
    functionDepth: 0
    functionLinenumber: 15607
    functionLinenumberEnd: 15632
    functionName: roaring::internal::container_from_run_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_lenrange_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_set_lenrange
    - roaring::internal::array_container_from_bitset
    linkageType: ''
    returnType: container_t
    signature: "container_t *container_from_run_range(const run_container_t *run,
      uint32_t min,\n                                      uint32_t max, uint8_t *typecode_after)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15663,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 15673
      start: 15658
    functionDepth: 0
    functionLinenumber: 15658
    functionLinenumberEnd: 15673
    functionName: roaring::internal::array_bitset_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - roaring::internal::array_container_grow
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_andnot(const array_container_t *src_1,\n
      \                                  const bitset_container_t *src_2,\n                                   array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_bitset_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 15681
      start: 15678
    functionDepth: 0
    functionLinenumber: 15678
    functionLinenumberEnd: 15681
    functionName: roaring::internal::array_bitset_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_bitset_container_andnot
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_iandnot(array_container_t *src_1,\n                                    const
      bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15692,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15693,1
    - Dst: roaring::internal::bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15695,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15700,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 15706
      start: 15688
    functionDepth: 2
    functionLinenumber: 15688
    functionLinenumberEnd: 15706
    functionName: roaring::internal::bitset_array_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_clear_list
    - roaring::internal::array_container_from_bitset
    linkageType: ''
    returnType: bool
    signature: "bool bitset_array_container_andnot(const bitset_container_t *src_1,\n
      \                                  const array_container_t *src_2,\n                                   container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15720,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15724,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 15729
      start: 15715
    functionDepth: 2
    functionLinenumber: 15715
    functionLinenumberEnd: 15729
    functionName: roaring::internal::bitset_array_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_clear_list
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_array_container_iandnot(bitset_container_t *src_1,\n                                    const
      array_container_t *src_2,\n                                    container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15745,1
    - Dst: roaring::internal::bitset_container_get
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15751,1
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15760,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15768,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15769,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15772,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15774,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15777,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15778,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 15784
      start: 15738
    functionDepth: 1
    functionLinenumber: 15738
    functionLinenumberEnd: 15784
    functionName: roaring::internal::run_bitset_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_flip_range
    - roaring::internal::bitset_reset_range
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_get
    - roaring::internal::bitset_container_clone
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_andnot(const run_container_t *src_1,\n                                 const
      bitset_container_t *src_2,\n                                 container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 15800
      start: 15793
    functionDepth: 0
    functionLinenumber: 15793
    functionLinenumberEnd: 15800
    functionName: roaring::internal::run_bitset_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_iandnot(run_container_t *src_1,\n                                  const
      bitset_container_t *src_2,\n                                  container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15813,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15815,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15818,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15819,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15821,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15824,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 15830
      start: 15809
    functionDepth: 0
    functionLinenumber: 15809
    functionLinenumberEnd: 15830
    functionName: roaring::internal::bitset_run_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - UINT32_C
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_reset_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_run_container_andnot(const bitset_container_t *src_1,\n
      \                                const run_container_t *src_2,\n                                 container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15846,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15847,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15849,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15852,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 15857
      start: 15839
    functionDepth: 0
    functionLinenumber: 15839
    functionLinenumberEnd: 15857
    functionName: roaring::internal::bitset_run_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - UINT32_C
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_reset_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_run_container_iandnot(bitset_container_t *src_1,\n                                  const
      run_container_t *src_2,\n                                  container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15878,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - rc
    - a_in
    - a_out
    argTypes:
    - run_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 15905
      start: 15867
    functionDepth: 0
    functionLinenumber: 15867
    functionLinenumberEnd: 15905
    functionName: roaring::internal::run_array_array_subtract
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::advanceUntil
    linkageType: ''
    returnType: int
    signature: "int run_array_array_subtract(const run_container_t *rc,\n                                    const
      array_container_t *a_in,\n                                    array_container_t
      *a_out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15921,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15925,1
    - Dst: roaring::internal::array_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15926,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15939,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15954,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15968,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15971,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15977,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15978,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15984,1
    - Dst: roaring::internal::run_array_array_subtract
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15987,1
    - Dst: roaring::internal::bitset_container_from_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:15991,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 15994
      start: 15911
    functionDepth: 1
    functionLinenumber: 15911
    functionLinenumberEnd: 15994
    functionName: roaring::internal::run_array_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_array_array_subtract
    - memcpy
    - roaring::internal::run_container_free
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::bitset_container_from_run
    - roaring::internal::convert_run_to_efficient_container
    - roaring::internal::run_container_clone
    - MAKE_RLE16
    - roaring::internal::array_container_cardinality
    linkageType: ''
    returnType: int
    signature: "int run_array_container_andnot(const run_container_t *src_1,\n                               const
      array_container_t *src_2,\n                               container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16010
      start: 16003
    functionDepth: 0
    functionLinenumber: 16003
    functionLinenumberEnd: 16010
    functionName: roaring::internal::run_array_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: int
    signature: "int run_array_container_iandnot(run_container_t *src_1,\n                                const
      array_container_t *src_2,\n                                container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16019,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16023,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 16054
      start: 16014
    functionDepth: 0
    functionLinenumber: 16014
    functionLinenumberEnd: 16054
    functionName: roaring::internal::array_run_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - memmove
    - roaring::internal::array_container_grow
    linkageType: ''
    returnType: void
    signature: "void array_run_container_andnot(const array_container_t *src_1,\n
      \                               const run_container_t *src_2,\n                                array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 16063
      start: 16060
    functionDepth: 0
    functionLinenumber: 16060
    functionLinenumberEnd: 16063
    functionName: roaring::internal::array_run_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_run_container_andnot
    linkageType: ''
    returnType: void
    signature: "void array_run_container_iandnot(array_container_t *src_1,\n                                 const
      run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16071,1
    - Dst: roaring::internal::run_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16072,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16076
      start: 16069
    functionDepth: 0
    functionLinenumber: 16069
    functionLinenumberEnd: 16076
    functionName: roaring::internal::run_run_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_andnot
    - roaring::internal::convert_run_to_efficient_container_and_free
    - roaring::internal::run_container_create
    linkageType: ''
    returnType: int
    signature: "int run_run_container_andnot(const run_container_t *src_1,\n                             const
      run_container_t *src_2, container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16091
      start: 16085
    functionDepth: 0
    functionLinenumber: 16085
    functionLinenumberEnd: 16091
    functionName: roaring::internal::run_run_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: int
    signature: "int run_run_container_iandnot(run_container_t *src_1,\n                              const
      run_container_t *src_2, container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 16101
      start: 16097
    functionDepth: 0
    functionLinenumber: 16097
    functionLinenumberEnd: 16101
    functionName: roaring::internal::array_array_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_andnot
    linkageType: ''
    returnType: void
    signature: "void array_array_container_andnot(const array_container_t *src_1,\n
      \                                 const array_container_t *src_2,\n                                  array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 16108
      start: 16105
    functionDepth: 0
    functionLinenumber: 16105
    functionLinenumberEnd: 16108
    functionName: roaring::internal::array_array_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_andnot
    linkageType: ''
    returnType: void
    signature: "void array_array_container_iandnot(array_container_t *src_1,\n                                   const
      array_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16118,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16121,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16128
      start: 16115
    functionDepth: 0
    functionLinenumber: 16115
    functionLinenumberEnd: 16128
    functionName: roaring::internal::bitset_bitset_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_andnot(const bitset_container_t *src_1,\n
      \                                   const bitset_container_t *src_2,\n                                    container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16142,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16149
      start: 16137
    functionDepth: 0
    functionLinenumber: 16137
    functionLinenumberEnd: 16149
    functionName: roaring::internal::bitset_bitset_container_iandnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_iandnot(bitset_container_t *src_1,\n
      \                                    const bitset_container_t *src_2,\n                                     container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 16189
      start: 16165
    functionDepth: 0
    functionLinenumber: 16165
    functionLinenumberEnd: 16189
    functionName: roaring::internal::array_container_equal_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool array_container_equal_bitset(const array_container_t* container1,\n
      \                                 const bitset_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 16211
      start: 16191
    functionDepth: 0
    functionLinenumber: 16191
    functionLinenumberEnd: 16211
    functionName: roaring::internal::run_container_equals_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: bool
    signature: "bool run_container_equals_array(const run_container_t* container1,\n
      \                               const array_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16227,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 16238
      start: 16213
    functionDepth: 0
    functionLinenumber: 16213
    functionLinenumberEnd: 16238
    functionName: roaring::internal::run_container_equals_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_contains
    - roaring::internal::bitset_container_contains_range
    linkageType: ''
    returnType: bool
    signature: "bool run_container_equals_bitset(const run_container_t* container1,\n
      \                                const bitset_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16265,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 16288
      start: 16261
    functionDepth: 0
    functionLinenumber: 16261
    functionLinenumberEnd: 16288
    functionName: roaring::internal::array_bitset_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::array_container_grow
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_intersection(const array_container_t *src_1,\n
      \                                        const bitset_container_t *src_2,\n
      \                                        array_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 16300
      start: 16291
    functionDepth: 0
    functionLinenumber: 16291
    functionLinenumberEnd: 16300
    functionName: roaring::internal::array_bitset_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: int
    signature: "int array_bitset_container_intersection_cardinality(\n    const array_container_t
      *src_1, const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 16310
      start: 16302
    functionDepth: 0
    functionLinenumber: 16302
    functionLinenumberEnd: 16310
    functionName: roaring::internal::array_bitset_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: bool
    signature: "bool array_bitset_container_intersect(const array_container_t *src_1,\n
      \                                     const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16318,1
    - Dst: roaring::internal::array_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16319,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16323,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16344,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 16353
      start: 16315
    functionDepth: 0
    functionLinenumber: 16315
    functionLinenumberEnd: 16353
    functionName: roaring::internal::array_run_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::array_container_copy
    - roaring::internal::advanceUntil
    - roaring::internal::array_container_grow
    - roaring::internal::run_container_is_full
    linkageType: ''
    returnType: void
    signature: "void array_run_container_intersection(const array_container_t *src_1,\n
      \                                     const run_container_t *src_2,\n                                      array_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16362,1
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16363,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16373,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16385,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16391,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16396,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16400,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16400,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16401,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16405,1
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16415,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16425,1
    - Dst: roaring::internal::bitset_reset_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16428,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16428,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16429,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16434,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16435,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16435,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16444
      start: 16359
    functionDepth: 1
    functionLinenumber: 16359
    functionLinenumberEnd: 16444
    functionName: roaring::internal::run_bitset_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::array_container_create_given_capacity
    - UINT32_C
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::bitset_container_contains
    - roaring::internal::run_container_is_full
    - roaring::internal::bitset_reset_range
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_clone
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_intersection(const run_container_t *src_1,\n
      \                                      const bitset_container_t *src_2,\n                                       container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16449,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 16478
      start: 16447
    functionDepth: 0
    functionLinenumber: 16447
    functionLinenumberEnd: 16478
    functionName: roaring::internal::array_run_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::advanceUntil
    - roaring::internal::run_container_is_full
    linkageType: ''
    returnType: int
    signature: "int array_run_container_intersection_cardinality(const array_container_t
      *src_1,\n                                                 const run_container_t
      *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16484,1
    - Dst: roaring::internal::bitset_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16485,1
    - Dst: roaring::internal::bitset_lenrange_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 16494
      start: 16482
    functionDepth: 0
    functionLinenumber: 16482
    functionLinenumberEnd: 16494
    functionName: roaring::internal::run_bitset_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_lenrange_cardinality
    - roaring::internal::run_container_is_full
    - roaring::internal::bitset_container_cardinality
    linkageType: ''
    returnType: int
    signature: "int run_bitset_container_intersection_cardinality(\n    const run_container_t
      *src_1, const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16498,1
    - Dst: roaring::internal::array_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16499,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 16525
      start: 16496
    functionDepth: 0
    functionLinenumber: 16496
    functionLinenumberEnd: 16525
    functionName: roaring::internal::array_run_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::advanceUntil
    - roaring::internal::array_container_empty
    - roaring::internal::run_container_is_full
    linkageType: ''
    returnType: bool
    signature: "bool array_run_container_intersect(const array_container_t *src_1,\n
      \                                  const run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16531,1
    - Dst: roaring::internal::bitset_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16532,1
    - Dst: roaring::internal::bitset_lenrange_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 16540
      start: 16529
    functionDepth: 0
    functionLinenumber: 16529
    functionLinenumberEnd: 16540
    functionName: roaring::internal::run_bitset_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_lenrange_empty
    - roaring::internal::bitset_container_empty
    - roaring::internal::run_container_is_full
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_intersect(const run_container_t *src_1,\n
      \                                   const bitset_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16552,1
    - Dst: bitset_container_and_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16554,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16554,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16555,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16559,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16561,1
    - Dst: roaring::internal::bitset_extract_intersection_setbits_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16562,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16567
      start: 16547
    functionDepth: 1
    functionLinenumber: 16547
    functionLinenumberEnd: 16567
    functionName: roaring::internal::bitset_bitset_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - bitset_container_and_nocard
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_extract_intersection_setbits_uint16
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_intersection(const bitset_container_t
      *src_1,\n                                          const bitset_container_t
      *src_2,\n                                          container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bitset_container_and_nocard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16575,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16576,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16579,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16581,1
    - Dst: roaring::internal::bitset_extract_intersection_setbits_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16582,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16587
      start: 16569
    functionDepth: 1
    functionLinenumber: 16569
    functionLinenumberEnd: 16587
    functionName: roaring::internal::bitset_bitset_container_intersection_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - bitset_container_and_nocard
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_extract_intersection_setbits_uint16
    - CAST_bitset
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_intersection_inplace(\n    bitset_container_t
      *src_1, const bitset_container_t *src_2,\n    container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_set_all
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16624,1
    - Dst: roaring::internal::bitset_clear_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 16632
      start: 16621
    functionDepth: 2
    functionLinenumber: 16621
    functionLinenumberEnd: 16632
    functionName: roaring::internal::array_container_negation
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::bitset_clear_list
    - roaring::internal::bitset_container_set_all
    linkageType: ''
    returnType: void
    signature: "void array_container_negation(const array_container_t *src,\n                              bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16644
      start: 16641
    functionDepth: 0
    functionLinenumber: 16641
    functionLinenumberEnd: 16644
    functionName: roaring::internal::bitset_container_negation
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_negation_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_negation(const bitset_container_t *src,\n                               container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16658
      start: 16655
    functionDepth: 0
    functionLinenumber: 16655
    functionLinenumberEnd: 16658
    functionName: roaring::internal::bitset_container_negation_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_negation_range_inplace
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_negation_inplace(bitset_container_t *src,\n
      \                                      container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_negation_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16668
      start: 16666
    functionDepth: 0
    functionLinenumber: 16666
    functionLinenumberEnd: 16668
    functionName: roaring::internal::run_container_negation
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_negation_range
    linkageType: ''
    returnType: int
    signature: int run_container_negation(const run_container_t *src, container_t
      **dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_negation_range_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 16679
      start: 16677
    functionDepth: 0
    functionLinenumber: 16677
    functionLinenumberEnd: 16679
    functionName: roaring::internal::run_container_negation_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_negation_range_inplace
    linkageType: ''
    returnType: int
    signature: int run_container_negation_inplace(run_container_t *src, container_t
      **dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16691,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16712,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16713,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16721,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16728,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16744,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - array_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 16748
      start: 16686
    functionDepth: 1
    functionLinenumber: 16686
    functionLinenumberEnd: 16748
    functionName: roaring::internal::array_container_negation_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - memcpy
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_flip_range
    - roaring::internal::array_container_clone
    linkageType: ''
    returnType: bool
    signature: "bool array_container_negation_range(const array_container_t *src,\n
      \                                   const int range_start, const int range_end,\n
      \                                   container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - array_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 16762
      start: 16754
    functionDepth: 0
    functionLinenumber: 16754
    functionLinenumberEnd: 16762
    functionName: roaring::internal::array_container_negation_range_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: bool
    signature: "bool array_container_negation_range_inplace(array_container_t *src,\n
      \                                           const int range_start,\n                                            const
      int range_end,\n                                            container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16780,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16781,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16782,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16788,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - bitset_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 16792
      start: 16771
    functionDepth: 1
    functionLinenumber: 16771
    functionLinenumberEnd: 16792
    functionName: roaring::internal::bitset_container_negation_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_flip_range
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_clone
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_negation_range(const bitset_container_t *src,\n
      \                                    const int range_start, const int range_end,\n
      \                                    container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16807,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16808,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16813,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - bitset_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 16816
      start: 16803
    functionDepth: 0
    functionLinenumber: 16803
    functionLinenumberEnd: 16816
    functionName: roaring::internal::bitset_container_negation_range_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_flip_range
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_negation_range_inplace(bitset_container_t *src,\n
      \                                            const int range_start,\n                                             const
      int range_end,\n                                             container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16831,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16835,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16843,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16847,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16851,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16852,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - run_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 16855
      start: 16824
    functionDepth: 1
    functionLinenumber: 16824
    functionLinenumberEnd: 16855
    functionName: roaring::internal::run_container_negation_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_free
    - roaring::internal::run_container_smart_append_exclusive
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::convert_run_to_efficient_container
    - roaring::internal::run_container_clone
    linkageType: ''
    returnType: int
    signature: "int run_container_negation_range(const run_container_t *src,\n                                 const
      int range_start, const int range_end,\n                                 container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16886,1
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16887,1
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16891,1
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16894,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16900,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16918,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16922,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16928,1
    - Dst: roaring::internal::convert_run_to_efficient_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16933,1
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16934,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - src
    - range_start
    - range_end
    - dst
    argTypes:
    - run_container_t*
    - int
    - int
    - container_t**
    constantsTouched: []
    func_position:
      end: 16937
      start: 16864
    functionDepth: 0
    functionLinenumber: 16864
    functionLinenumberEnd: 16937
    functionName: roaring::internal::run_container_negation_range_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_free
    - roaring::internal::run_container_smart_append_exclusive
    - roaring::internal::convert_run_to_efficient_container
    - roaring::internal::run_container_contains
    - MAKE_RLE16
    linkageType: ''
    returnType: int
    signature: "int run_container_negation_range_inplace(run_container_t *src,\n                                         const
      int range_start,\n                                         const int range_end,\n
      \                                        container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16961,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 16966
      start: 16953
    functionDepth: 0
    functionLinenumber: 16953
    functionLinenumberEnd: 16966
    functionName: roaring::internal::array_container_is_subset_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: bool
    signature: "bool array_container_is_subset_bitset(const array_container_t* container1,\n
      \                                     const bitset_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16970,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16976,1
    - Dst: roaring::internal::advanceUntil
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16978,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - array_container_t*
    constantsTouched: []
    func_position:
      end: 16989
      start: 16968
    functionDepth: 0
    functionLinenumber: 16968
    functionLinenumberEnd: 16989
    functionName: roaring::internal::run_container_is_subset_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::advanceUntil
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: bool
    signature: "bool run_container_is_subset_array(const run_container_t* container1,\n
      \                                  const array_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:16993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 17012
      start: 16991
    functionDepth: 0
    functionLinenumber: 16991
    functionLinenumberEnd: 17012
    functionName: roaring::internal::array_container_is_subset_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: bool
    signature: "bool array_container_is_subset_run(const array_container_t* container1,\n
      \                                  const run_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17018,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17024,1
    - Dst: roaring::internal::bitset_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17032,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 17038
      start: 17014
    functionDepth: 0
    functionLinenumber: 17014
    functionLinenumberEnd: 17038
    functionName: roaring::internal::run_container_is_subset_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_cardinality
    - roaring::internal::bitset_container_contains
    linkageType: ''
    returnType: bool
    signature: "bool run_container_is_subset_bitset(const run_container_t* container1,\n
      \                                   const bitset_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17044,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - bitset_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 17082
      start: 17040
    functionDepth: 0
    functionLinenumber: 17040
    functionLinenumberEnd: 17082
    functionName: roaring::internal::bitset_container_is_subset_run
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: bool
    signature: "bool bitset_container_is_subset_run(const bitset_container_t* container1,\n
      \                                   const run_container_t* container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17111,1
    - Dst: roaring::internal::bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 17114
      start: 17108
    functionDepth: 2
    functionLinenumber: 17108
    functionLinenumberEnd: 17114
    functionName: roaring::internal::array_bitset_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_set_list_withcard
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_union(const array_container_t *src_1,\n
      \                                 const bitset_container_t *src_2,\n                                  bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17122,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 17125
      start: 17119
    functionDepth: 2
    functionLinenumber: 17119
    functionLinenumberEnd: 17125
    functionName: roaring::internal::array_bitset_container_lazy_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_set_list
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_lazy_union(const array_container_t *src_1,\n
      \                                      const bitset_container_t *src_2,\n                                       bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17130,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17130,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17131,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17134,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 17137
      start: 17127
    functionDepth: 0
    functionLinenumber: 17127
    functionLinenumberEnd: 17137
    functionName: roaring::internal::run_bitset_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_copy
    - roaring::internal::run_container_is_full
    - roaring::internal::bitset_set_lenrange
    - assert
    linkageType: ''
    returnType: void
    signature: "void run_bitset_container_union(const run_container_t *src_1,\n                                const
      bitset_container_t *src_2,\n                                bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17142,1
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17142,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17143,1
    - Dst: roaring::internal::bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 17149
      start: 17139
    functionDepth: 0
    functionLinenumber: 17139
    functionLinenumberEnd: 17149
    functionName: roaring::internal::run_bitset_container_lazy_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::bitset_container_copy
    - assert
    - roaring::internal::run_container_is_full
    - roaring::internal::bitset_set_lenrange
    linkageType: ''
    returnType: void
    signature: "void run_bitset_container_lazy_union(const run_container_t *src_1,\n
      \                                    const bitset_container_t *src_2,\n                                     bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17155,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17156,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17160,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17165,1
    - Dst: roaring::internal::run_container_append_value_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17169,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17174,1
    - Dst: roaring::internal::run_container_append_value
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17177,1
    - Dst: roaring::internal::run_container_append_value
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17184,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 17194
      start: 17152
    functionDepth: 0
    functionLinenumber: 17152
    functionLinenumberEnd: 17194
    functionName: roaring::internal::array_run_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 8
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_append_first
    - roaring::internal::run_container_is_full
    - roaring::internal::run_container_copy
    - roaring::internal::run_container_append
    - roaring::internal::run_container_append_value_first
    - roaring::internal::run_container_append_value
    linkageType: ''
    returnType: void
    signature: "void array_run_container_union(const array_container_t *src_1,\n                               const
      run_container_t *src_2,\n                               run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17198,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17204,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17205,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17216,1
    - Dst: roaring::internal::run_container_append_value_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17220,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17226,1
    - Dst: roaring::internal::run_container_append_value
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17229,1
    - Dst: roaring::internal::run_container_append_value
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17236,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - array_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 17246
      start: 17196
    functionDepth: 0
    functionLinenumber: 17196
    functionLinenumberEnd: 17246
    functionName: roaring::internal::array_run_container_inplace_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_append_first
    - roaring::internal::run_container_is_full
    - roaring::internal::run_container_append
    - memmove
    - roaring::internal::run_container_append_value_first
    - roaring::internal::run_container_append_value
    linkageType: ''
    returnType: void
    signature: "void array_run_container_inplace_union(const array_container_t *src_1,\n
      \                                      run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17253,1
    - Dst: roaring::internal::array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17255,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17255,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17261,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17264,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17265,1
    - Dst: roaring::internal::bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17266,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17271,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17277
      start: 17248
    functionDepth: 2
    functionLinenumber: 17248
    functionLinenumberEnd: 17277
    functionName: roaring::internal::array_array_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_set_list
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::bitset_set_list_withcard
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_from_bitset
    - roaring::internal::array_container_union
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_union(const array_container_t *src_1,\n
      \                                const array_container_t *src_2,\n                                 container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17286,1
    - Dst: roaring::internal::array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17289,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17289,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17295,1
    - Dst: roaring::internal::union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17301,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17307,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17310,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17311,1
    - Dst: roaring::internal::bitset_set_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17312,1
    - Dst: roaring::internal::array_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17318,1
    - Dst: roaring::internal::bitset_extract_setbits_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17321,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17331
      start: 17279
    functionDepth: 2
    functionLinenumber: 17279
    functionLinenumberEnd: 17331
    functionName: roaring::internal::array_array_container_inplace_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_extract_setbits_uint16
    - roaring::internal::bitset_set_list
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::bitset_set_list_withcard
    - roaring::internal::bitset_container_create
    - memmove
    - roaring::internal::array_container_union
    - CAST_array
    - roaring::internal::array_container_grow
    - roaring::internal::union_uint16
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_inplace_union(array_container_t *src_1,\n
      \                                        const array_container_t *src_2,\n                                         container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17350,1
    - Dst: roaring::internal::array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17352,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17352,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17358,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17361,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17362,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17367
      start: 17333
    functionDepth: 2
    functionLinenumber: 17333
    functionLinenumberEnd: 17367
    functionName: roaring::internal::array_array_container_lazy_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_set_list
    - roaring::internal::array_container_create_given_capacity
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_union
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_lazy_union(const array_container_t *src_1,\n
      \                                     const array_container_t *src_2,\n                                      container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17388,1
    - Dst: roaring::internal::array_container_union
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17391,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17391,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17397,1
    - Dst: roaring::internal::fast_union_uint16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17437,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17443,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17446,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17447,1
    - Dst: roaring::internal::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17452
      start: 17369
    functionDepth: 2
    functionLinenumber: 17369
    functionLinenumberEnd: 17452
    functionName: roaring::internal::array_array_container_lazy_inplace_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_set_list
    - roaring::internal::fast_union_uint16
    - roaring::internal::array_container_create_given_capacity
    - CAST_bitset
    - roaring::internal::bitset_container_create
    - memmove
    - roaring::internal::array_container_union
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_lazy_inplace_union(array_container_t *src_1,\n
      \                                             const array_container_t *src_2,\n
      \                                             container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17481,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17482,1
    - Dst: roaring::internal::bitset_flip_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17483,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17488,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17494
      start: 17478
    functionDepth: 1
    functionLinenumber: 17478
    functionLinenumberEnd: 17494
    functionName: roaring::internal::array_bitset_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_flip_list_withcard
    linkageType: ''
    returnType: bool
    signature: "bool array_bitset_container_xor(const array_container_t *src_1,\n
      \                               const bitset_container_t *src_2,\n                                container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17504,1
    - Dst: roaring::internal::bitset_flip_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 17507
      start: 17501
    functionDepth: 1
    functionLinenumber: 17501
    functionLinenumberEnd: 17507
    functionName: roaring::internal::array_bitset_container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_flip_list
    - roaring::internal::bitset_container_copy
    linkageType: ''
    returnType: void
    signature: "void array_bitset_container_lazy_xor(const array_container_t *src_1,\n
      \                                    const bitset_container_t *src_2,\n                                     bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17519,1
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17521,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17524,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17525,1
    - Dst: roaring::internal::bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17527,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17530,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17536
      start: 17516
    functionDepth: 0
    functionLinenumber: 17516
    functionLinenumberEnd: 17536
    functionName: roaring::internal::run_bitset_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - UINT32_C
    - roaring::internal::bitset_container_compute_cardinality
    - roaring::internal::bitset_container_free
    - roaring::internal::bitset_flip_range
    - roaring::internal::bitset_container_copy
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_from_bitset
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_xor(const run_container_t *src_1,\n                              const
      bitset_container_t *src_2,\n                              container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17546,1
    - Dst: roaring::internal::bitset_flip_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17549,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - bitset_container_t*
    constantsTouched: []
    func_position:
      end: 17553
      start: 17543
    functionDepth: 0
    functionLinenumber: 17543
    functionLinenumberEnd: 17553
    functionName: roaring::internal::run_bitset_container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_copy
    - UINT32_C
    - roaring::internal::bitset_flip_range
    linkageType: ''
    returnType: void
    signature: "void run_bitset_container_lazy_xor(const run_container_t *src_1,\n
      \                                  const bitset_container_t *src_2,\n                                   bitset_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17569,1
    - Dst: roaring::internal::array_run_container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17570,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17573,1
    - Dst: roaring::internal::array_container_from_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17581,1
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17583,1
    - Dst: roaring::internal::bitset_container_from_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17593
      start: 17559
    functionDepth: 0
    functionLinenumber: 17559
    functionLinenumberEnd: 17593
    functionName: roaring::internal::array_run_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_create
    - roaring::internal::array_container_from_run
    - roaring::internal::bitset_container_from_run
    - roaring::internal::convert_run_to_efficient_container_and_free
    - roaring::internal::array_run_container_lazy_xor
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: int
    signature: "int array_run_container_xor(const array_container_t *src_1,\n                            const
      run_container_t *src_2, container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17603,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17610,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17614,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17620,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 17628
      start: 17600
    functionDepth: 0
    functionLinenumber: 17600
    functionLinenumberEnd: 17628
    functionName: roaring::internal::array_run_container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_smart_append_exclusive
    linkageType: ''
    returnType: void
    signature: "void array_run_container_lazy_xor(const array_container_t *src_1,\n
      \                                 const run_container_t *src_2,\n                                  run_container_t
      *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17636,1
    - Dst: roaring::internal::run_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17637,1
    - Dst: roaring::internal::convert_run_to_efficient_container_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17641
      start: 17634
    functionDepth: 0
    functionLinenumber: 17634
    functionLinenumberEnd: 17641
    functionName: roaring::internal::run_run_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::convert_run_to_efficient_container_and_free
    - roaring::internal::run_container_xor
    - roaring::internal::run_container_create
    linkageType: ''
    returnType: int
    signature: "int run_run_container_xor(const run_container_t *src_1,\n                          const
      run_container_t *src_2, container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17657,1
    - Dst: roaring::internal::array_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17658,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17658,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17661,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17663,1
    - Dst: roaring::internal::bitset_flip_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17664,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17668,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17674
      start: 17651
    functionDepth: 1
    functionLinenumber: 17651
    functionLinenumberEnd: 17674
    functionName: roaring::internal::array_array_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::array_container_xor
    - roaring::internal::bitset_container_free
    - CAST_bitset
    - roaring::internal::bitset_flip_list_withcard
    - roaring::internal::array_container_from_bitset
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_xor(const array_container_t *src_1,\n                               const
      array_container_t *src_2,\n                               container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17696,1
    - Dst: roaring::internal::array_container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17697,1
    - Dst: CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17697,1
    - Dst: roaring::internal::bitset_container_from_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17700,1
    - Dst: CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17703,1
    - Dst: roaring::internal::bitset_flip_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17708
      start: 17676
    functionDepth: 1
    functionLinenumber: 17676
    functionLinenumberEnd: 17708
    functionName: roaring::internal::array_array_container_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_from_array
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::array_container_xor
    - CAST_bitset
    - roaring::internal::bitset_flip_list
    - CAST_array
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_lazy_xor(const array_container_t *src_1,\n
      \                                   const array_container_t *src_2,\n                                    container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17718,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17721,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17728
      start: 17715
    functionDepth: 0
    functionLinenumber: 17715
    functionLinenumberEnd: 17728
    functionName: roaring::internal::bitset_bitset_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_create
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_xor(const bitset_container_t *src_1,\n
      \                                const bitset_container_t *src_2,\n                                 container_t
      **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_flip_list_withcard
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17741,1
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17745,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17750
      start: 17737
    functionDepth: 1
    functionLinenumber: 17737
    functionLinenumberEnd: 17750
    functionName: roaring::internal::bitset_array_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_flip_list_withcard
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_array_container_ixor(bitset_container_t *src_1,\n                                 const
      array_container_t *src_2,\n                                 container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_from_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17762,1
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17769
      start: 17757
    functionDepth: 0
    functionLinenumber: 17757
    functionLinenumberEnd: 17769
    functionName: roaring::internal::bitset_bitset_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_from_bitset
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_bitset_container_ixor(bitset_container_t *src_1,\n                                  const
      bitset_container_t *src_2,\n                                  container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17777
      start: 17771
    functionDepth: 0
    functionLinenumber: 17771
    functionLinenumberEnd: 17777
    functionName: roaring::internal::array_bitset_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: bool
    signature: "bool array_bitset_container_ixor(array_container_t *src_1,\n                                 const
      bitset_container_t *src_2,\n                                 container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - bitset_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17792
      start: 17786
    functionDepth: 0
    functionLinenumber: 17786
    functionLinenumberEnd: 17792
    functionName: roaring::internal::run_bitset_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: bool
    signature: "bool run_bitset_container_ixor(run_container_t *src_1,\n                               const
      bitset_container_t *src_2,\n                               container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::bitset_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - bitset_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17800
      start: 17794
    functionDepth: 0
    functionLinenumber: 17794
    functionLinenumberEnd: 17800
    functionName: roaring::internal::bitset_run_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::bitset_container_free
    linkageType: ''
    returnType: bool
    signature: "bool bitset_run_container_ixor(bitset_container_t *src_1,\n                               const
      run_container_t *src_2,\n                               container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17811
      start: 17806
    functionDepth: 0
    functionLinenumber: 17806
    functionLinenumberEnd: 17811
    functionName: roaring::internal::array_run_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: int
    signature: "int array_run_container_ixor(array_container_t *src_1,\n                             const
      run_container_t *src_2, container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17819
      start: 17813
    functionDepth: 0
    functionLinenumber: 17813
    functionLinenumberEnd: 17819
    functionName: roaring::internal::run_array_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: int
    signature: "int run_array_container_ixor(run_container_t *src_1,\n                             const
      array_container_t *src_2,\n                             container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::array_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - array_container_t*
    - array_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17827
      start: 17821
    functionDepth: 0
    functionLinenumber: 17821
    functionLinenumberEnd: 17827
    functionName: roaring::internal::array_array_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::array_container_free
    linkageType: ''
    returnType: bool
    signature: "bool array_array_container_ixor(array_container_t *src_1,\n                                const
      array_container_t *src_2,\n                                container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - container_t**
    constantsTouched: []
    func_position:
      end: 17834
      start: 17829
    functionDepth: 0
    functionLinenumber: 17829
    functionLinenumberEnd: 17834
    functionName: roaring::internal::run_run_container_ixor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_free
    linkageType: ''
    returnType: int
    signature: "int run_run_container_ixor(run_container_t *src_1, const run_container_t
      *src_2,\n                           container_t **dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::recoverRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17894,1
    - Dst: roaring::internal::makeRoomAtIndex
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17921,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - run
    - pos
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 17925
      start: 17878
    functionDepth: 0
    functionLinenumber: 17878
    functionLinenumberEnd: 17925
    functionName: roaring::internal::run_container_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::recoverRoomAtIndex
    - roaring::internal::makeRoomAtIndex
    linkageType: ''
    returnType: bool
    signature: bool run_container_add(run_container_t *run, uint16_t pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17931,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17937,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - size
    argTypes:
    - int32_t
    constantsTouched: []
    func_position:
      end: 17945
      start: 17928
    functionDepth: 0
    functionLinenumber: 17928
    functionLinenumberEnd: 17945
    functionName: roaring::internal::run_container_create_given_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 13
    functionsReached:
    - roaring_malloc
    - roaring_free
    linkageType: ''
    returnType: run_container_t
    signature: run_container_t *run_container_create_given_capacity(int32_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17953,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - src
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 17956
      start: 17947
    functionDepth: 0
    functionLinenumber: 17947
    functionLinenumberEnd: 17956
    functionName: roaring::internal::run_container_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring_realloc
    - roaring_free
    linkageType: ''
    returnType: int
    signature: int run_container_shrink_to_fit(run_container_t *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17960
      start: 17958
    functionDepth: 0
    functionLinenumber: 17958
    functionLinenumberEnd: 17960
    functionName: roaring::internal::run_container_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 21
    functionsReached:
    - roaring::internal::run_container_create_given_capacity
    linkageType: ''
    returnType: run_container_t
    signature: run_container_t *run_container_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17964,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17970
      start: 17962
    functionDepth: 0
    functionLinenumber: 17962
    functionLinenumberEnd: 17970
    functionName: run_container_t *run_container_clone(const run_container_t *src)
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::internal::run_container_create_given_capacity
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: ALLOW_UNALIGNED run_container_t *run_container_clone(const run_container_t
      *src)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_index_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17981,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17994,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:17995,1
    - Dst: roaring::internal::run_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18004,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18005,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - c
    - loc
    - hic
    - offset
    argTypes:
    - run_container_t*
    - container_t**
    - container_t**
    - uint16_t
    constantsTouched: []
    func_position:
      end: 18027
      start: 17972
    functionDepth: 0
    functionLinenumber: 17972
    functionLinenumberEnd: 18027
    functionName: roaring::internal::run_container_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - memcpy
    - roaring::internal::run_container_create_given_capacity
    - roaring::internal::run_container_index_equalorlarger
    linkageType: ''
    returnType: void
    signature: "void run_container_offset(const run_container_t *c, container_t **loc,\n
      \                         container_t **hic, uint16_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18033,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18037
      start: 18030
    functionDepth: 0
    functionLinenumber: 18030
    functionLinenumberEnd: 18037
    functionName: roaring::internal::run_container_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 22
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void run_container_free(run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18046,1
    - Dst: roaring_realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18049,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18051,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18055,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - run
    - min
    - copy
    argTypes:
    - run_container_t*
    - int32_t
    - bool
    constantsTouched: []
    func_position:
      end: 18060
      start: 18039
    functionDepth: 0
    functionLinenumber: 18039
    functionLinenumberEnd: 18060
    functionName: roaring::internal::run_container_grow
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 17
    functionsReached:
    - roaring_malloc
    - roaring_realloc
    - assert
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void run_container_grow(run_container_t *run, int32_t min, bool copy)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18066,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18070
      start: 18063
    functionDepth: 0
    functionLinenumber: 18063
    functionLinenumberEnd: 18070
    functionName: roaring::internal::run_container_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 13
    functionsReached:
    - roaring::internal::run_container_grow
    - memcpy
    linkageType: ''
    returnType: void
    signature: void run_container_copy(const run_container_t *src, run_container_t
      *dst)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18083,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18087,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18093,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18100,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18103,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18116,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18119,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18123,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18126
      start: 18074
    functionDepth: 0
    functionLinenumber: 18074
    functionLinenumberEnd: 18126
    functionName: roaring::internal::run_container_union
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_append
    - roaring::internal::run_container_copy
    - roaring::internal::run_container_append_first
    linkageType: ''
    returnType: void
    signature: "void run_container_union(const run_container_t *src_1,\n                         const
      run_container_t *src_2, run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18142,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18150,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18151,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18161,1
    - Dst: roaring::internal::run_container_append_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18164,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18176,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18179,1
    - Dst: roaring::internal::run_container_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18183,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18186
      start: 18130
    functionDepth: 0
    functionLinenumber: 18130
    functionLinenumberEnd: 18186
    functionName: roaring::internal::run_container_union_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_append_first
    - roaring::internal::run_container_copy
    - roaring::internal::run_container_append
    - memmove
    linkageType: ''
    returnType: void
    signature: "void run_container_union_inplace(run_container_t *src_1,\n                                 const
      run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18198,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18206,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18210,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18216,1
    - Dst: roaring::internal::run_container_smart_append_exclusive
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18226
      start: 18191
    functionDepth: 0
    functionLinenumber: 18191
    functionLinenumberEnd: 18226
    functionName: roaring::internal::run_container_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_smart_append_exclusive
    linkageType: ''
    returnType: void
    signature: "void run_container_xor(const run_container_t *src_1,\n                       const
      run_container_t *src_2, run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18237,1
    - Dst: roaring::internal::run_container_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18241,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18248,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18306
      start: 18230
    functionDepth: 0
    functionLinenumber: 18230
    functionLinenumberEnd: 18306
    functionName: roaring::internal::run_container_intersection
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::run_container_grow
    - roaring::internal::run_container_copy
    linkageType: ''
    returnType: void
    signature: "void run_container_intersection(const run_container_t *src_1,\n                                const
      run_container_t *src_2,\n                                run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18315,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18318,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18376
      start: 18309
    functionDepth: 0
    functionLinenumber: 18309
    functionLinenumberEnd: 18376
    functionName: roaring::internal::run_container_intersection_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_cardinality
    linkageType: ''
    returnType: int
    signature: "int run_container_intersection_cardinality(const run_container_t *src_1,\n
      \                                          const run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18384,1
    - Dst: roaring::internal::run_container_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18387,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - src_1
    - src_2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18414
      start: 18378
    functionDepth: 0
    functionLinenumber: 18378
    functionLinenumberEnd: 18414
    functionName: roaring::internal::run_container_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_empty
    linkageType: ''
    returnType: bool
    signature: "bool run_container_intersect(const run_container_t *src_1,\n                             const
      run_container_t *src_2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18423,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18437,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18453,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18467,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18470,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - src_1
    - src_2
    - dst
    argTypes:
    - run_container_t*
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18475
      start: 18418
    functionDepth: 0
    functionLinenumber: 18418
    functionLinenumberEnd: 18475
    functionName: roaring::internal::run_container_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::internal::run_container_grow
    - memcpy
    - MAKE_RLE16
    linkageType: ''
    returnType: void
    signature: "void run_container_andnot(const run_container_t *src_1,\n                          const
      run_container_t *src_2, run_container_t *dst)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - vout
    - cont
    - base
    argTypes:
    - void*
    - run_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 18493
      start: 18477
    functionDepth: 0
    functionLinenumber: 18477
    functionLinenumberEnd: 18493
    functionName: roaring::internal::run_container_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: "ALLOW_UNALIGNED run_container_to_uint32_array(void *vout, const run_container_t
      *cont,\n                                  uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cont
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18506
      start: 18499
    functionDepth: 0
    functionLinenumber: 18499
    functionLinenumberEnd: 18506
    functionName: roaring::internal::run_container_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void run_container_printf(const run_container_t *cont)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18519,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18520,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - cont
    - base
    argTypes:
    - run_container_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 18527
      start: 18513
    functionDepth: 0
    functionLinenumber: 18513
    functionLinenumberEnd: 18527
    functionName: roaring::internal::run_container_printf_as_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void run_container_printf_as_uint32_array(const run_container_t *cont,\n
      \                                         uint32_t base)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - run
    - reason
    argTypes:
    - run_container_t*
    - char**
    constantsTouched: []
    func_position:
      end: 18580
      start: 18533
    functionDepth: 0
    functionLinenumber: 18533
    functionLinenumberEnd: 18580
    functionName: roaring::internal::run_container_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool run_container_validate(const run_container_t *run, const char
      **reason)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18584,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18585,1
    - Dst: roaring::internal::run_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - container
    - buf
    argTypes:
    - run_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 18588
      start: 18582
    functionDepth: 0
    functionLinenumber: 18582
    functionLinenumberEnd: 18588
    functionName: roaring::internal::run_container_write
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - memcpy
    - roaring::internal::run_container_size_in_bytes
    linkageType: ''
    returnType: int32_t
    signature: int32_t run_container_write(const run_container_t *container, char
      *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18594,1
    - Dst: roaring::internal::run_container_grow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18597,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18599,1
    - Dst: roaring::internal::run_container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cardinality
    - container
    - buf
    argTypes:
    - int32_t
    - run_container_t*
    - char*
    constantsTouched: []
    func_position:
      end: 18603
      start: 18590
    functionDepth: 0
    functionLinenumber: 18590
    functionLinenumberEnd: 18603
    functionName: roaring::internal::run_container_read
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_grow
    - memcpy
    - roaring::internal::run_container_size_in_bytes
    linkageType: ''
    returnType: int32_t
    signature: "int32_t run_container_read(int32_t cardinality, run_container_t *container,\n
      \                          const char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - cont
    - base
    - iterator
    - ptr
    argTypes:
    - run_container_t*
    - uint32_t
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 18615
      start: 18605
    functionDepth: 0
    functionLinenumber: 18605
    functionLinenumberEnd: 18615
    functionName: roaring::internal::run_container_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: "bool run_container_iterate(const run_container_t *cont, uint32_t base,\n
      \                          roaring_iterator iterator, void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - cont
    - base
    - iterator
    - high_bits
    - ptr
    argTypes:
    - run_container_t*
    - uint32_t
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 18629
      start: 18617
    functionDepth: 0
    functionLinenumber: 18617
    functionLinenumberEnd: 18629
    functionName: roaring::internal::run_container_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: "bool run_container_iterate64(const run_container_t *cont, uint32_t
      base,\n                             roaring_iterator64 iterator, uint64_t high_bits,\n
      \                            void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - container1
    - container2
    argTypes:
    - run_container_t*
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18657
      start: 18631
    functionDepth: 0
    functionLinenumber: 18631
    functionLinenumberEnd: 18657
    functionName: roaring::internal::run_container_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool run_container_is_subset(const run_container_t *container1,\n
      \                            const run_container_t *container2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18673,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18687,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18690,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18699,1
    - Dst: MAKE_RLE16
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18702,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - src
    - start
    - length
    argTypes:
    - run_container_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 18705
      start: 18664
    functionDepth: 0
    functionLinenumber: 18664
    functionLinenumberEnd: 18705
    functionName: roaring::internal::run_container_smart_append_exclusive
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 8
    functionsReached:
    - MAKE_RLE16
    linkageType: ''
    returnType: void
    signature: "void run_container_smart_append_exclusive(run_container_t *src,\n
      \                                         const uint16_t start,\n                                          const
      uint16_t length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - container
    - start_rank
    - rank
    - element
    argTypes:
    - run_container_t*
    - uint32_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 18720
      start: 18707
    functionDepth: 0
    functionLinenumber: 18707
    functionLinenumberEnd: 18720
    functionName: roaring::internal::run_container_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool run_container_select(const run_container_t *container,\n                          uint32_t
      *start_rank, uint32_t rank,\n                          uint32_t *element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - container
    - x
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 18737
      start: 18722
    functionDepth: 0
    functionLinenumber: 18722
    functionLinenumberEnd: 18737
    functionName: roaring::internal::run_container_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int run_container_rank(const run_container_t *container, uint16_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - container
    - start_rank
    - begin
    - end
    - ans
    argTypes:
    - run_container_t*
    - uint64_t
    - uint32_t*
    - uint32_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 18771
      start: 18738
    functionDepth: 0
    functionLinenumber: 18738
    functionLinenumberEnd: 18771
    functionName: roaring::internal::run_container_rank_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t run_container_rank_many(const run_container_t *container,\n
      \                                uint64_t start_rank, const uint32_t *begin,\n
      \                                const uint32_t *end, uint64_t *ans)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::run_container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18774,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - container
    - x
    argTypes:
    - run_container_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 18792
      start: 18773
    functionDepth: 0
    functionLinenumber: 18773
    functionLinenumberEnd: 18792
    functionName: roaring::internal::run_container_get_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::run_container_contains
    linkageType: ''
    returnType: int
    signature: int run_container_get_index(const run_container_t *container, uint16_t
      x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm512_setzero_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18809,1
    - Dst: _mm512_loadu_si512
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18811,1
    - Dst: _mm512_srli_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18812,1
    - Dst: _mm512_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18813,1
    - Dst: _mm512_extracti32x8_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18816,1
    - Dst: _mm512_extracti32x8_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18817,1
    - Dst: _mm256_storeu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18821,1
    - Dst: _mm256_storeu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18834
      start: 18799
    functionDepth: 0
    functionLinenumber: 18799
    functionLinenumberEnd: 18834
    functionName: roaring::internal::_avx512_run_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm512_loadu_si512
    - _mm512_srli_epi32
    - _mm512_add_epi32
    - _mm512_extracti32x8_epi32
    - _mm256_storeu_si256
    - _mm512_setzero_si512
    linkageType: ''
    returnType: int
    signature: "int _avx512_run_container_cardinality(\n    const run_container_t
      *run)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm256_setzero_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18850,1
    - Dst: _mm256_lddqu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18852,1
    - Dst: _mm256_srli_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18853,1
    - Dst: _mm256_add_epi32
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18854,1
    - Dst: _mm256_storeu_si256
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18867
      start: 18836
    functionDepth: 0
    functionLinenumber: 18836
    functionLinenumberEnd: 18867
    functionName: roaring::internal::CROARING_TARGET_AVX2::_avx2_run_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _mm256_add_epi32
    - _mm256_srli_epi32
    - _mm256_lddqu_si256
    - _mm256_storeu_si256
    - _mm256_setzero_si256
    linkageType: ''
    returnType: CROARING_UNTARGET_AVX512
    signature: 'CROARING_UNTARGET_AVX512 CROARING_TARGET_AVX2

      ALLOW_UNALIGNED

      /* Get the cardinality of `run''. Requires an actual computation. */

      static inline int _avx2_run_container_cardinality(const run_container_t *run)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18884
      start: 18869
    functionDepth: 0
    functionLinenumber: 18869
    functionLinenumberEnd: 18884
    functionName: roaring::internal::_scalar_run_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CROARING_UNTARGET_AVX2
    signature: "CROARING_UNTARGET_AVX2 _scalar_run_container_cardinality(\n    const
      run_container_t *run)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18888,1
    - Dst: roaring::internal::_avx512_run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18889,1
    - Dst: roaring::internal::croaring_hardware_support
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18892,1
    - Dst: roaring::internal::_avx2_run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18893,1
    - Dst: roaring::internal::_scalar_run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:18895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18897
      start: 18886
    functionDepth: 1
    functionLinenumber: 18886
    functionLinenumberEnd: 18897
    functionName: roaring::internal::run_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 17
    functionsReached:
    - roaring::internal::_scalar_run_container_cardinality
    - roaring::internal::croaring_hardware_support
    - roaring::internal::_avx2_run_container_cardinality
    - roaring::internal::_avx512_run_container_cardinality
    linkageType: ''
    returnType: int
    signature: int run_container_cardinality(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - run
    argTypes:
    - run_container_t*
    constantsTouched: []
    func_position:
      end: 18912
      start: 18901
    functionDepth: 0
    functionLinenumber: 18901
    functionLinenumberEnd: 18912
    functionName: roaring::internal::run_container_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int run_container_cardinality(const run_container_t *run)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __cpuidex
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19034,1
    - Dst: __get_cpuid
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 19050
      start: 19030
    functionDepth: 0
    functionLinenumber: 19030
    functionLinenumberEnd: 19050
    functionName: roaring::internal::cpuid
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - __get_cpuid
    - __cpuidex
    linkageType: ''
    returnType: void
    signature: "void cpuid(uint32_t *eax, uint32_t *ebx, uint32_t *ecx,\n                         uint32_t
      *edx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _xgetbv
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19060
      start: 19052
    functionDepth: 0
    functionLinenumber: 19052
    functionLinenumberEnd: 19060
    functionName: roaring::internal::xgetbv
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _xgetbv
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xgetbv(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::cpuid
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19102,1
    - Dst: roaring::internal::cpuid
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19128,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19169
      start: 19067
    functionDepth: 0
    functionLinenumber: 19067
    functionLinenumberEnd: 19169
    functionName: roaring::internal::dynamic_croaring_detect_supported_architectures
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::cpuid
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dynamic_croaring_detect_supported_architectures(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19180
      start: 19176
    functionDepth: 0
    functionLinenumber: 19176
    functionLinenumberEnd: 19180
    functionName: roaring::internal::croaring_detect_supported_architectures
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_detect_supported_architectures(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::dynamic_croaring_detect_supported_architectures
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19190
      start: 19182
    functionDepth: 0
    functionLinenumber: 19182
    functionLinenumberEnd: 19190
    functionName: roaring::internal::croaring_detect_supported_architectures
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::dynamic_croaring_detect_supported_architectures
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_detect_supported_architectures(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::dynamic_croaring_detect_supported_architectures
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19199
      start: 19193
    functionDepth: 0
    functionLinenumber: 19193
    functionLinenumberEnd: 19199
    functionName: roaring::internal::croaring_detect_supported_architectures
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::dynamic_croaring_detect_supported_architectures
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_detect_supported_architectures(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19204
      start: 19204
    functionDepth: 0
    functionLinenumber: 19204
    functionLinenumberEnd: 19204
    functionName: roaring::internal::croaring_hardware_support
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int croaring_hardware_support(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19211
      start: 19209
    functionDepth: 0
    functionLinenumber: 19209
    functionLinenumberEnd: 19211
    functionName: roaring::internal::croaring_hardware_support
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int croaring_hardware_support(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::croaring_detect_supported_architectures
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19231
      start: 19214
    functionDepth: 0
    functionLinenumber: 19214
    functionLinenumberEnd: 19231
    functionName: roaring::internal::croaring_hardware_support
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 9
    functionsReached:
    - roaring::internal::croaring_detect_supported_architectures
    linkageType: ''
    returnType: int
    signature: int croaring_hardware_support(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::croaring_detect_supported_architectures
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19252
      start: 19234
    functionDepth: 0
    functionLinenumber: 19234
    functionLinenumberEnd: 19252
    functionName: roaring::internal::croaring_hardware_support
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 9
    functionsReached:
    - roaring::internal::croaring_detect_supported_architectures
    linkageType: ''
    returnType: int
    signature: int croaring_hardware_support(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19275,1
    - Dst: __mingw_aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19277,1
    - Dst: posix_memalign
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 19284
      start: 19272
    functionDepth: 0
    functionLinenumber: 19272
    functionLinenumberEnd: 19284
    functionName: roaring_bitmap_aligned_malloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _aligned_malloc
    - posix_memalign
    - __mingw_aligned_malloc
    linkageType: ''
    returnType: void
    signature: void * roaring_bitmap_aligned_malloc(size_t alignment, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _aligned_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19288,1
    - Dst: __mingw_aligned_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19290,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memblock
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 19294
      start: 19286
    functionDepth: 0
    functionLinenumber: 19286
    functionLinenumberEnd: 19294
    functionName: roaring_bitmap_aligned_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - _aligned_free
    - __mingw_aligned_free
    - free
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_aligned_free(void* memblock)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memory_hook
    argTypes:
    - roaring_memory_t
    constantsTouched: []
    func_position:
      end: 19307
      start: 19305
    functionDepth: 0
    functionLinenumber: 19305
    functionLinenumberEnd: 19307
    functionName: roaring_init_memory_hook
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void roaring_init_memory_hook(roaring_memory_t memory_hook)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 19309
      start: 19309
    functionDepth: 0
    functionLinenumber: 19309
    functionLinenumberEnd: 19309
    functionName: roaring_malloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 28
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void * roaring_malloc(size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - new_sz
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 19313
      start: 19311
    functionDepth: 0
    functionLinenumber: 19311
    functionLinenumberEnd: 19313
    functionName: roaring_realloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 11
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void * roaring_realloc(void* p, size_t new_sz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n_elements
    - element_size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 19317
      start: 19315
    functionDepth: 0
    functionLinenumber: 19315
    functionLinenumberEnd: 19317
    functionName: roaring_calloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void * roaring_calloc(size_t n_elements, size_t element_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 19319
      start: 19319
    functionDepth: 0
    functionLinenumber: 19319
    functionLinenumberEnd: 19319
    functionName: roaring_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 52
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void roaring_free(void* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aligned_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 19323
      start: 19321
    functionDepth: 0
    functionLinenumber: 19321
    functionLinenumberEnd: 19323
    functionName: roaring_aligned_malloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - aligned_malloc
    linkageType: ''
    returnType: void
    signature: void * roaring_aligned_malloc(size_t alignment, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aligned_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 19325
      start: 19325
    functionDepth: 0
    functionLinenumber: 19325
    functionLinenumberEnd: 19325
    functionName: roaring_aligned_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - aligned_free
    linkageType: ''
    returnType: void
    signature: void roaring_aligned_free(void* p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 19362
      start: 19360
    functionDepth: 0
    functionLinenumber: 19360
    functionLinenumberEnd: 19362
    functionName: roaring::api::is_cow
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_cow(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 19365
      start: 19363
    functionDepth: 0
    functionLinenumber: 19363
    functionLinenumberEnd: 19365
    functionName: roaring::api::is_frozen
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_frozen(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19381,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19382,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19384,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19387,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19388,1
    - Dst: array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19395,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19397,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - r
    - val
    - type
    - index
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    - uint8_t*
    - int*
    constantsTouched: []
    func_position:
      end: 19403
      start: 19372
    functionDepth: 0
    functionLinenumber: 19372
    functionLinenumberEnd: 19403
    functionName: roaring::api::containerptr_roaring_bitmap_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - container_free
    - container_add
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - ra_insert_new_key_value_at
    - array_container_create
    - ra_set_container_at_index
    linkageType: ''
    returnType: container_t
    signature: "container_t *containerptr_roaring_bitmap_add(roaring_bitmap_t *r,\n
      \                                                          uint32_t val,\n                                                           uint8_t
      *type,\n                                                           int *index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19407,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cap
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19417
      start: 19405
    functionDepth: 0
    functionLinenumber: 19405
    functionLinenumberEnd: 19417
    functionName: roaring::api::roaring_bitmap_create_with_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 7
    functionsReached:
    - roaring_malloc
    - roaring_free
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_create_with_capacity(uint32_t cap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_init_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - cap
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19421
      start: 19419
    functionDepth: 0
    functionLinenumber: 19419
    functionLinenumberEnd: 19421
    functionName: roaring::api::roaring_bitmap_init_with_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_init_with_capacity
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_init_with_capacity(roaring_bitmap_t *r, uint32_t
      cap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::containerptr_roaring_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19431,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19440,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19444,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - context
    - val
    argTypes:
    - roaring_bitmap_t*
    - roaring_bulk_context_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19451
      start: 19423
    functionDepth: 0
    functionLinenumber: 19423
    functionLinenumberEnd: 19451
    functionName: roaring::api::add_bulk_impl
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::api::containerptr_roaring_bitmap_add
    - container_free
    - container_add
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: "void add_bulk_impl(roaring_bitmap_t *r,\n                                 roaring_bulk_context_t
      *context,\n                                 uint32_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::containerptr_roaring_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19468,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19473,1
    - Dst: roaring::api::add_bulk_impl
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - r
    - n_args
    - vals
    argTypes:
    - roaring_bitmap_t*
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 19476
      start: 19453
    functionDepth: 0
    functionLinenumber: 19453
    functionLinenumberEnd: 19476
    functionName: roaring::api::roaring_bitmap_add_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::api::containerptr_roaring_bitmap_add
    - roaring::api::add_bulk_impl
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_add_many(roaring_bitmap_t *r, size_t n_args,\n
      \                            const uint32_t *vals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::add_bulk_impl
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - context
    - val
    argTypes:
    - roaring_bitmap_t*
    - roaring_bulk_context_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19481
      start: 19478
    functionDepth: 0
    functionLinenumber: 19478
    functionLinenumberEnd: 19481
    functionName: roaring::api::roaring_bitmap_add_bulk
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::api::add_bulk_impl
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_add_bulk(roaring_bitmap_t *r,\n                             roaring_bulk_context_t
      *context, uint32_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_size
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19493,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19497,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19502,1
    - Dst: container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - r
    - context
    - val
    argTypes:
    - roaring_bitmap_t*
    - roaring_bulk_context_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19512
      start: 19483
    functionDepth: 0
    functionLinenumber: 19483
    functionLinenumberEnd: 19512
    functionName: roaring::api::roaring_bitmap_contains_bulk
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - ra_get_key_at_index
    - container_contains
    - ra_get_size
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_contains_bulk(const roaring_bitmap_t *r,\n                                  roaring_bulk_context_t
      *context,\n                                  uint32_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19515,1
    - Dst: roaring::api::roaring_bitmap_add_many
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n_args
    - vals
    argTypes:
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 19518
      start: 19514
    functionDepth: 0
    functionLinenumber: 19514
    functionLinenumberEnd: 19518
    functionName: roaring::api::roaring_bitmap_of_ptr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_add_many
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_of_ptr(size_t n_args, const uint32_t
      *vals)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19523,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19525,1
    - Dst: va_start
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19527,1
    - Dst: roaring::api::roaring_bitmap_add_bulk
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19530,1
    - Dst: va_end
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - n_args
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 19534
      start: 19520
    functionDepth: 0
    functionLinenumber: 19520
    functionLinenumberEnd: 19534
    functionName: roaring::api::roaring_bitmap_of
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    - va_start
    - va_end
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_add_bulk
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_of(size_t n_args, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 19538
      start: 19536
    functionDepth: 0
    functionLinenumber: 19536
    functionLinenumberEnd: 19538
    functionName: roaring::api::minimum_uint64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t minimum_uint64(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19542,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19543,1
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19547,1
    - Dst: roaring::api::roaring_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19550,1
    - Dst: container_from_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19561,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19563,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - min
    - max
    - step
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19569
      start: 19540
    functionDepth: 0
    functionLinenumber: 19540
    functionLinenumberEnd: 19569
    functionName: roaring::api::roaring_bitmap_from_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_append
    - container_from_range
    - UINT64_C
    - roaring::api::roaring_bitmap_add
    - roaring::api::roaring_bitmap_create
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_from_range(uint64_t min, uint64_t
      max,\n                                            uint32_t step)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_shift_tail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19590,1
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19604,1
    - Dst: container_add_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19606,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19609,1
    - Dst: container_from_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19613,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19620
      start: 19571
    functionDepth: 0
    functionLinenumber: 19571
    functionLinenumberEnd: 19620
    functionName: roaring::api::roaring_bitmap_add_range_closed
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_replace_key_and_container_at_index
    - container_from_range
    - ra_unshare_container_at_index
    - ra_shift_tail
    - container_add_range
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_add_range_closed(roaring_bitmap_t *r, uint32_t
      min,\n                                     uint32_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19640,1
    - Dst: container_remove_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19644,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19647,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19650,1
    - Dst: ra_shift_tail
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19659
      start: 19622
    functionDepth: 0
    functionLinenumber: 19622
    functionLinenumberEnd: 19659
    functionName: roaring::api::roaring_bitmap_remove_range_closed
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_replace_key_and_container_at_index
    - ra_unshare_container_at_index
    - ra_shift_tail
    - container_remove_range
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_remove_range_closed(roaring_bitmap_t *r, uint32_t
      min,\n                                        uint32_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19665,1
    - Dst: container_printf_as_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19667,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19671,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 19675
      start: 19662
    functionDepth: 0
    functionLinenumber: 19662
    functionLinenumberEnd: 19675
    functionName: roaring::api::roaring_bitmap_printf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_printf_as_uint32_array
    - printf
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_printf(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19680,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19682,1
    - Dst: get_full_container_name
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19683,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19684,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19686,1
    - Dst: croaring_refcount_get
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19687,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19688,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19692,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 19696
      start: 19677
    functionDepth: 1
    functionLinenumber: 19677
    functionLinenumberEnd: 19696
    functionName: roaring::api::roaring_bitmap_printf_describe
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - printf
    - container_get_cardinality
    - CAST_shared
    - croaring_refcount_get
    - get_full_container_name
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_printf_describe(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - value
    - param
    argTypes:
    - uint32_t
    - void*
    constantsTouched: []
    func_position:
      end: 19711
      start: 19705
    functionDepth: 0
    functionLinenumber: 19705
    functionLinenumberEnd: 19711
    functionName: roaring::api::min_max_sum_fnc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool min_max_sum_fnc(uint32_t value, void *param)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19721,1
    - Dst: roaring::api::roaring_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19723,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19725,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19726,1
    - Dst: roaring::api::roaring_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19728,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - r
    - stat
    argTypes:
    - roaring_bitmap_t*
    - roaring_statistics_t*
    constantsTouched: []
    func_position:
      end: 19761
      start: 19717
    functionDepth: 0
    functionLinenumber: 19717
    functionLinenumberEnd: 19761
    functionName: roaring::api::roaring_bitmap_statistics
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    - UINT32_C
    - roaring::api::roaring_iterate
    - roaring::api::roaring_bitmap_get_cardinality
    - assert
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_statistics(const roaring_bitmap_t *r,\n                               roaring_statistics_t
      *stat)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_internal_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19823,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - r
    - reason
    argTypes:
    - roaring_bitmap_t*
    - char**
    constantsTouched: []
    func_position:
      end: 19834
      start: 19771
    functionDepth: 0
    functionLinenumber: 19771
    functionLinenumberEnd: 19834
    functionName: roaring::api::roaring_bitmap_internal_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_internal_validate
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_internal_validate(const roaring_bitmap_t *r,\n
      \                                     const char **reason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19838,1
    - Dst: ra_init_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19842,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19844,1
    - Dst: ra_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19847,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19848,1
    - Dst: roaring::api::roaring_bitmap_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19849,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19852,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 19854
      start: 19836
    functionDepth: 0
    functionLinenumber: 19836
    functionLinenumberEnd: 19854
    functionName: roaring::api::roaring_bitmap_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 10
    functionsReached:
    - roaring::api::is_cow
    - ra_init_with_capacity
    - ra_overwrite
    - roaring::api::roaring_bitmap_free
    - roaring_free
    - roaring_malloc
    - roaring::api::roaring_bitmap_set_copy_on_write
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_copy(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19858,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19858,1
    - Dst: ra_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19859,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 19861
      start: 19856
    functionDepth: 0
    functionLinenumber: 19856
    functionLinenumberEnd: 19861
    functionName: roaring::api::roaring_bitmap_overwrite
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::api::is_cow
    - roaring::api::roaring_bitmap_set_copy_on_write
    - ra_overwrite
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_overwrite(roaring_bitmap_t *dest,\n                              const
      roaring_bitmap_t *src)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::is_frozen
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19867,1
    - Dst: ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19868,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 19871
      start: 19863
    functionDepth: 0
    functionLinenumber: 19863
    functionLinenumberEnd: 19871
    functionName: roaring::api::roaring_bitmap_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - ra_clear
    - roaring_free
    - roaring::api::is_frozen
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_free(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_reset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 19875
      start: 19873
    functionDepth: 0
    functionLinenumber: 19873
    functionLinenumberEnd: 19875
    functionName: roaring::api::roaring_bitmap_clear
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - ra_reset
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_clear(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19884,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19886,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19889,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19891,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19892,1
    - Dst: array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19896,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19898,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19903
      start: 19877
    functionDepth: 0
    functionLinenumber: 19877
    functionLinenumberEnd: 19903
    functionName: roaring::api::roaring_bitmap_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - container_free
    - container_add
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - ra_insert_new_key_value_at
    - array_container_create
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_add(roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19911,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19912,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19920,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19922,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19923,1
    - Dst: array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19933,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19935,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19943
      start: 19905
    functionDepth: 0
    functionLinenumber: 19905
    functionLinenumberEnd: 19943
    functionName: roaring::api::roaring_bitmap_add_checked
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - container_add
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - ra_insert_new_key_value_at
    - array_container_create
    - ra_set_container_at_index
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_add_checked(roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19950,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19951,1
    - Dst: container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19955,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19957,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19958,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19961,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19962,1
    - Dst: ra_remove_at_index_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 19968
      start: 19945
    functionDepth: 0
    functionLinenumber: 19945
    functionLinenumberEnd: 19968
    functionName: roaring::api::roaring_bitmap_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - container_get_cardinality
    - container_remove
    - ra_remove_at_index_and_free
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_remove(roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19976,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19977,1
    - Dst: container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19985,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19987,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19988,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19996,1
    - Dst: ra_remove_at_index_and_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:19999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 20005
      start: 19970
    functionDepth: 0
    functionLinenumber: 19970
    functionLinenumberEnd: 20005
    functionName: roaring::api::roaring_bitmap_remove_checked
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - container_remove
    - ra_remove_at_index_and_free
    - ra_set_container_at_index
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_remove_checked(roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20017,1
    - Dst: container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20022,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20026,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20028,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20032,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20033,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20034,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - r
    - n_args
    - vals
    argTypes:
    - roaring_bitmap_t*
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 20039
      start: 20007
    functionDepth: 0
    functionLinenumber: 20007
    functionLinenumberEnd: 20039
    functionName: roaring::api::roaring_bitmap_remove_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_replace_key_and_container_at_index
    - ra_get_index
    - ra_remove_at_index
    - container_remove
    - container_nonzero_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_remove_many(roaring_bitmap_t *r, size_t n_args,\n
      \                               const uint32_t *vals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20048,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20049,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20049,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20049,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20061,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20063,1
    - Dst: container_and
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20065,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20067,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20068,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20070,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20075,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20077,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20081
      start: 20042
    functionDepth: 0
    functionLinenumber: 20042
    functionLinenumberEnd: 20081
    functionName: roaring::api::roaring_bitmap_and
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - ra_append
    - ra_get_container_at_index
    - container_and
    - ra_advance_until
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_and(const roaring_bitmap_t *x1,\n
      \                                    const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20089,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20092,1
    - Dst: roaring::api::roaring_bitmap_lazy_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20095,1
    - Dst: roaring::api::roaring_bitmap_lazy_or_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20097,1
    - Dst: roaring::api::roaring_bitmap_repair_after_lazy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - number
    - x
    argTypes:
    - size_t
    - roaring_bitmap_t**
    constantsTouched: []
    func_position:
      end: 20101
      start: 20086
    functionDepth: 0
    functionLinenumber: 20086
    functionLinenumberEnd: 20101
    functionName: roaring::api::roaring_bitmap_or_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_copy
    - roaring::api::roaring_bitmap_repair_after_lazy
    - roaring::api::roaring_bitmap_lazy_or
    - roaring::api::roaring_bitmap_lazy_or_inplace
    - roaring::api::roaring_bitmap_create
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_or_many(size_t number,\n                                         const
      roaring_bitmap_t **x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20109,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20112,1
    - Dst: roaring::api::roaring_bitmap_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20114,1
    - Dst: roaring::api::roaring_bitmap_lazy_xor_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20116,1
    - Dst: roaring::api::roaring_bitmap_repair_after_lazy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - number
    - x
    argTypes:
    - size_t
    - roaring_bitmap_t**
    constantsTouched: []
    func_position:
      end: 20120
      start: 20106
    functionDepth: 0
    functionLinenumber: 20106
    functionLinenumberEnd: 20120
    functionName: roaring::api::roaring_bitmap_xor_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_lazy_xor
    - roaring::api::roaring_bitmap_copy
    - roaring::api::roaring_bitmap_repair_after_lazy
    - roaring::api::roaring_bitmap_lazy_xor_inplace
    - roaring::api::roaring_bitmap_create
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_xor_many(size_t number,\n                                          const
      roaring_bitmap_t **x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20140,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20142,1
    - Dst: container_and
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20152,1
    - Dst: container_iand
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20153,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20157,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20159,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20160,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20165,1
    - Dst: ra_advance_until_freeing
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20170,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20172,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20179,1
    - Dst: ra_downsize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20185,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20186
      start: 20123
    functionDepth: 0
    functionLinenumber: 20123
    functionLinenumberEnd: 20186
    functionName: roaring::api::roaring_bitmap_and_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - ra_replace_key_and_container_at_index
    - ra_downsize
    - ra_get_container_at_index
    - container_and
    - ra_advance_until_freeing
    - ra_advance_until
    - container_iand
    - container_nonzero_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_and_inplace(roaring_bitmap_t *x1,\n                                const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20194,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20197,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20200,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20201,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20201,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20201,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20208,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20210,1
    - Dst: container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20212,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20217,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20222,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20223,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20226,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20229,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20229,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20230,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20231,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20234,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20237,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20240,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20243,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20243,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20244,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20245,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20248,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20251,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20255,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20257,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20259,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20261,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20264
      start: 20188
    functionDepth: 0
    functionLinenumber: 20188
    functionLinenumberEnd: 20264
    functionName: roaring::api::roaring_bitmap_or
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_set_container_at_index
    - roaring::api::is_cow
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - container_or
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_set_copy_on_write
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_or(const roaring_bitmap_t *x1,\n
      \                                   const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20276,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20285,1
    - Dst: container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20287,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20288,1
    - Dst: container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20292,1
    - Dst: container_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20293,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20297,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20299,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20306,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20307,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20312,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20315,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20317,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20317,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20318,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20319,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20324,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20330,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20334,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20335,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20337
      start: 20267
    functionDepth: 0
    functionLinenumber: 20267
    functionLinenumberEnd: 20337
    functionName: roaring::api::roaring_bitmap_or_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - container_is_full
    - get_copy_of_container
    - ra_get_container_at_index
    - ra_append_copy_range
    - ra_get_key_at_index
    - ra_insert_new_key_value_at
    - container_or
    - roaring::api::roaring_bitmap_overwrite
    - container_ior
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_or_inplace(roaring_bitmap_t *x1,\n                               const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20345,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20348,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20351,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20352,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20352,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20352,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20359,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20361,1
    - Dst: container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20363,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20365,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20366,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20368,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20374,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20375,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20378,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20380,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20380,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20381,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20382,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20385,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20388,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20391,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20393,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20393,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20394,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20395,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20398,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20401,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20405,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20407,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20409,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20411,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20414
      start: 20339
    functionDepth: 0
    functionLinenumber: 20339
    functionLinenumberEnd: 20414
    functionName: roaring::api::roaring_bitmap_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_set_container_at_index
    - roaring::api::is_cow
    - container_free
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - container_xor
    - ra_append
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_xor(const roaring_bitmap_t *x1,\n
      \                                    const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20420,1
    - Dst: roaring::api::roaring_bitmap_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20428,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20441,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20443,1
    - Dst: container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20454,1
    - Dst: shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20455,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20455,1
    - Dst: container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20457,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20460,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20461,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20465,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20466,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20473,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20474,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20479,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20482,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20484,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20484,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20485,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20486,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20490,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20496,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20500,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20501,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20503
      start: 20418
    functionDepth: 0
    functionLinenumber: 20418
    functionLinenumberEnd: 20503
    functionName: roaring::api::roaring_bitmap_xor_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - container_nonzero_cardinality
    - ra_get_container_at_index
    - container_xor
    - container_ixor
    - ra_remove_at_index
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - ra_insert_new_key_value_at
    - CAST_shared
    - roaring::api::roaring_bitmap_overwrite
    - assert
    - ra_set_container_at_index
    - shared_container_free
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_xor_inplace(roaring_bitmap_t *x1,\n                                const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20511,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20512,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20513,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20513,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20517,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20519,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20520,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20520,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20520,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20527,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20528,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20531,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20533,1
    - Dst: container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20536,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20538,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20539,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20541,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20550,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20552,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20558,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20563,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20565,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20568
      start: 20505
    functionDepth: 0
    functionLinenumber: 20505
    functionLinenumberEnd: 20568
    functionName: roaring::api::roaring_bitmap_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - container_andnot
    - ra_append_copy_range
    - ra_advance_until
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_andnot(const roaring_bitmap_t *x1,\n
      \                                       const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20574,1
    - Dst: roaring::api::roaring_bitmap_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20584,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20594,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20596,1
    - Dst: container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20607,1
    - Dst: shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20608,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20608,1
    - Dst: container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20610,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20613,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20614,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20618,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20625,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20626,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20630,1
    - Dst: ra_replace_key_and_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20633,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20639,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20642,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20644,1
    - Dst: ra_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20657,1
    - Dst: ra_downsize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20663,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20664
      start: 20572
    functionDepth: 0
    functionLinenumber: 20572
    functionLinenumberEnd: 20664
    functionName: roaring::api::roaring_bitmap_andnot_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_clear
    - container_free
    - ra_replace_key_and_container_at_index
    - ra_downsize
    - container_nonzero_cardinality
    - ra_get_container_at_index
    - ra_get_key_at_index
    - container_andnot
    - CAST_shared
    - container_iandnot
    - assert
    - ra_copy_range
    - ra_advance_until
    - shared_container_free
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_andnot_inplace(roaring_bitmap_t *x1,\n                                   const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20673
      start: 20666
    functionDepth: 0
    functionLinenumber: 20666
    functionLinenumberEnd: 20673
    functionName: roaring::api::roaring_bitmap_get_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - container_get_cardinality
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t roaring_bitmap_get_cardinality(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20681,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20697,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20701,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20704,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20716,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20718,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - r
    - range_start
    - range_end
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 20727
      start: 20675
    functionDepth: 0
    functionLinenumber: 20675
    functionLinenumberEnd: 20727
    functionName: roaring::api::roaring_bitmap_range_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    - container_get_cardinality
    - container_rank
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_range_cardinality(const roaring_bitmap_t *r,\n
      \                                         uint64_t range_start,\n                                          uint64_t
      range_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20731
      start: 20729
    functionDepth: 0
    functionLinenumber: 20729
    functionLinenumberEnd: 20731
    functionName: roaring::api::roaring_bitmap_is_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_is_empty(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - ans
    argTypes:
    - roaring_bitmap_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 20735
      start: 20733
    functionDepth: 0
    functionLinenumber: 20733
    functionLinenumberEnd: 20735
    functionName: roaring::api::roaring_bitmap_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - ra_to_uint32_array
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_to_uint32_array(const roaring_bitmap_t *r, uint32_t
      *ans)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_range_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - offset
    - limit
    - ans
    argTypes:
    - roaring_bitmap_t*
    - size_t
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 20740
      start: 20737
    functionDepth: 0
    functionLinenumber: 20737
    functionLinenumberEnd: 20740
    functionName: roaring::api::roaring_bitmap_range_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_range_uint32_array
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_range_uint32_array(const roaring_bitmap_t *r,
      size_t offset,\n                                       size_t limit, uint32_t
      *ans)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20751,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20754,1
    - Dst: convert_run_optimize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20756,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20763
      start: 20747
    functionDepth: 0
    functionLinenumber: 20747
    functionLinenumberEnd: 20763
    functionName: roaring::api::roaring_bitmap_run_optimize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - convert_run_optimize
    - ra_set_container_at_index
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_run_optimize(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20769,1
    - Dst: container_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20771,1
    - Dst: ra_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20775
      start: 20765
    functionDepth: 0
    functionLinenumber: 20765
    functionLinenumberEnd: 20775
    functionName: roaring::api::roaring_bitmap_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - container_shrink_to_fit
    - ra_shrink_to_fit
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_shrink_to_fit(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20785,1
    - Dst: get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20787,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20790,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20790,1
    - Dst: convert_to_bitset_or_array_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20792,1
    - Dst: shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20794,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20794,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20795,1
    - Dst: convert_to_bitset_or_array_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20800,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20801,1
    - Dst: run_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20802,1
    - Dst: CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20802,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20809
      start: 20781
    functionDepth: 0
    functionLinenumber: 20781
    functionLinenumberEnd: 20809
    functionName: roaring::api::roaring_bitmap_remove_run_compression
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - run_container_free
    - CAST_shared
    - shared_container_free
    - convert_to_bitset_or_array_container
    - get_container_type
    - ra_set_container_at_index
    - CAST_run
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_remove_run_compression(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_portable_serialize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20817,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20820,1
    - Dst: roaring::api::roaring_bitmap_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - roaring_bitmap_t*
    - char*
    constantsTouched: []
    func_position:
      end: 20825
      start: 20811
    functionDepth: 0
    functionLinenumber: 20811
    functionLinenumberEnd: 20825
    functionName: roaring::api::roaring_bitmap_serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::api::roaring_bitmap_portable_serialize
    - roaring::api::roaring_bitmap_to_uint32_array
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_serialize(const roaring_bitmap_t *r, char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20833
      start: 20827
    functionDepth: 0
    functionLinenumber: 20827
    functionLinenumberEnd: 20833
    functionName: roaring::api::roaring_bitmap_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_size_in_bytes(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 20837
      start: 20835
    functionDepth: 0
    functionLinenumber: 20835
    functionLinenumberEnd: 20837
    functionName: roaring::api::roaring_bitmap_portable_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - ra_portable_size_in_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_portable_size_in_bytes(const roaring_bitmap_t
      *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20842,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20850,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20853,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20855,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 20859
      start: 20839
    functionDepth: 0
    functionLinenumber: 20839
    functionLinenumberEnd: 20859
    functionName: roaring::api::roaring_bitmap_portable_deserialize_safe
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring_malloc
    - roaring_free
    - roaring::api::roaring_bitmap_set_copy_on_write
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_portable_deserialize_safe(const char
      *buf,\n                                                           size_t maxbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_portable_deserialize_safe
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 20863
      start: 20861
    functionDepth: 0
    functionLinenumber: 20861
    functionLinenumberEnd: 20863
    functionName: roaring::api::roaring_bitmap_portable_deserialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::api::roaring_bitmap_portable_deserialize_safe
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_portable_deserialize(const char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_portable_deserialize_size
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 20868
      start: 20865
    functionDepth: 0
    functionLinenumber: 20865
    functionLinenumberEnd: 20868
    functionName: roaring::api::roaring_bitmap_portable_deserialize_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_portable_deserialize_size
    linkageType: ''
    returnType: size_t
    signature: "size_t roaring_bitmap_portable_deserialize_size(const char *buf,\n
      \                                               size_t maxbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_portable_serialize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - roaring_bitmap_t*
    - char*
    constantsTouched: []
    func_position:
      end: 20872
      start: 20870
    functionDepth: 0
    functionLinenumber: 20870
    functionLinenumberEnd: 20872
    functionName: roaring::api::roaring_bitmap_portable_serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - ra_portable_serialize
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_portable_serialize(const roaring_bitmap_t *r,
      char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20880,1
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20885,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20889,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20893,1
    - Dst: roaring::api::roaring_bitmap_add_bulk
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20894,1
    - Dst: roaring::api::roaring_bitmap_portable_deserialize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 20902
      start: 20874
    functionDepth: 0
    functionLinenumber: 20874
    functionLinenumberEnd: 20902
    functionName: roaring::api::roaring_bitmap_deserialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    - roaring::api::roaring_bitmap_portable_deserialize
    - memcpy
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_add_bulk
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_deserialize(const void *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20918,1
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20928,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20932,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20936,1
    - Dst: roaring::api::roaring_bitmap_add_bulk
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20937,1
    - Dst: roaring::api::roaring_bitmap_portable_deserialize_safe
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20942,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 20946
      start: 20904
    functionDepth: 0
    functionLinenumber: 20904
    functionLinenumberEnd: 20946
    functionName: roaring::api::roaring_bitmap_deserialize_safe
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    - roaring::api::roaring_bitmap_portable_deserialize_safe
    - memcpy
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_add_bulk
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_deserialize_safe(const void *buf,\n
      \                                                 size_t maxbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_iterate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - r
    - iterator
    - ptr
    argTypes:
    - roaring_bitmap_t*
    - roaring_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 20958
      start: 20948
    functionDepth: 0
    functionLinenumber: 20948
    functionLinenumberEnd: 20958
    functionName: roaring::api::roaring_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - container_iterate
    linkageType: ''
    returnType: bool
    signature: "bool roaring_iterate(const roaring_bitmap_t *r, roaring_iterator iterator,\n
      \                    void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_iterate64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:20965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - r
    - iterator
    - high_bits
    - ptr
    argTypes:
    - roaring_bitmap_t*
    - roaring_iterator64
    - uint64_t
    - void*
    constantsTouched: []
    func_position:
      end: 20971
      start: 20960
    functionDepth: 0
    functionLinenumber: 20960
    functionLinenumberEnd: 20971
    functionName: roaring::api::roaring_iterate64
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_iterate64
    linkageType: ''
    returnType: bool
    signature: "bool roaring_iterate64(const roaring_bitmap_t *r, roaring_iterator64
      iterator,\n                       uint64_t high_bits, void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - newit
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 21006
      start: 20982
    functionDepth: 0
    functionLinenumber: 20982
    functionLinenumberEnd: 21006
    functionName: roaring::api::iter_new_container_partial_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - container_unwrap_shared
    linkageType: ''
    returnType: CROARING_WARN_UNUSED
    signature: "CROARING_WARN_UNUSED iter_new_container_partial_init(\n    roaring_uint32_iterator_t
      *newit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::iter_new_container_partial_init
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21014,1
    - Dst: container_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - newit
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 21021
      start: 21012
    functionDepth: 0
    functionLinenumber: 21012
    functionLinenumberEnd: 21021
    functionName: roaring::api::loadfirstvalue
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - container_init_iterator
    - roaring::api::iter_new_container_partial_init
    linkageType: ''
    returnType: CROARING_WARN_UNUSED
    signature: "CROARING_WARN_UNUSED loadfirstvalue(\n    roaring_uint32_iterator_t
      *newit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::iter_new_container_partial_init
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21029,1
    - Dst: container_init_iterator_last
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - newit
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 21036
      start: 21027
    functionDepth: 0
    functionLinenumber: 21027
    functionLinenumberEnd: 21036
    functionName: roaring::api::loadlastvalue
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - container_init_iterator_last
    - roaring::api::iter_new_container_partial_init
    linkageType: ''
    returnType: CROARING_WARN_UNUSED
    signature: "CROARING_WARN_UNUSED loadlastvalue(\n    roaring_uint32_iterator_t
      *newit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21046,1
    - Dst: container_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21052,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - newit
    - val
    argTypes:
    - roaring_uint32_iterator_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 21062
      start: 21043
    functionDepth: 0
    functionLinenumber: 21043
    functionLinenumberEnd: 21062
    functionName: roaring::api::loadfirstvalue_largeorequal
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - container_init_iterator
    - assert
    linkageType: ''
    returnType: CROARING_WARN_UNUSED
    signature: "CROARING_WARN_UNUSED loadfirstvalue_largeorequal(\n    roaring_uint32_iterator_t
      *newit, uint32_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - newit
    argTypes:
    - roaring_bitmap_t*
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 21069
      start: 21064
    functionDepth: 0
    functionLinenumber: 21064
    functionLinenumberEnd: 21069
    functionName: roaring::api::roaring_iterator_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::loadfirstvalue
    linkageType: ''
    returnType: void
    signature: "void roaring_iterator_init(const roaring_bitmap_t *r,\n                           roaring_uint32_iterator_t
      *newit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadlastvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - newit
    argTypes:
    - roaring_bitmap_t*
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 21076
      start: 21071
    functionDepth: 0
    functionLinenumber: 21071
    functionLinenumberEnd: 21076
    functionName: roaring::api::roaring_iterator_init_last
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::loadlastvalue
    linkageType: ''
    returnType: void
    signature: "void roaring_iterator_init_last(const roaring_bitmap_t *r,\n                                roaring_uint32_iterator_t
      *newit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21080,1
    - Dst: roaring::api::roaring_iterator_init
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 21085
      start: 21078
    functionDepth: 1
    functionLinenumber: 21078
    functionLinenumberEnd: 21085
    functionName: roaring::api::roaring_iterator_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - roaring::api::roaring_iterator_init
    linkageType: ''
    returnType: roaring_uint32_iterator_t
    signature: roaring_uint32_iterator_t *roaring_iterator_create(const roaring_bitmap_t
      *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21090,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 21094
      start: 21087
    functionDepth: 0
    functionLinenumber: 21087
    functionLinenumberEnd: 21094
    functionName: roaring::api::roaring_uint32_iterator_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - memcpy
    linkageType: ''
    returnType: roaring_uint32_iterator_t
    signature: "roaring_uint32_iterator_t *roaring_uint32_iterator_copy(\n    const
      roaring_uint32_iterator_t *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadfirstvalue_largeorequal
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21111,1
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - it
    - val
    argTypes:
    - roaring_uint32_iterator_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 21120
      start: 21096
    functionDepth: 0
    functionLinenumber: 21096
    functionLinenumberEnd: 21120
    functionName: roaring::api::roaring_uint32_iterator_move_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::loadfirstvalue_largeorequal
    - roaring::api::loadfirstvalue
    linkageType: ''
    returnType: bool
    signature: "bool roaring_uint32_iterator_move_equalorlarger(roaring_uint32_iterator_t
      *it,\n                                                uint32_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21128,1
    - Dst: container_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21131,1
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 21138
      start: 21122
    functionDepth: 0
    functionLinenumber: 21122
    functionLinenumberEnd: 21138
    functionName: roaring::api::roaring_uint32_iterator_advance
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::loadfirstvalue
    - container_iterator_next
    linkageType: ''
    returnType: bool
    signature: bool roaring_uint32_iterator_advance(roaring_uint32_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::loadlastvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21146,1
    - Dst: container_iterator_prev
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21149,1
    - Dst: roaring::api::loadlastvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 21156
      start: 21140
    functionDepth: 0
    functionLinenumber: 21140
    functionLinenumberEnd: 21156
    functionName: roaring::api::roaring_uint32_iterator_previous
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_iterator_prev
    - roaring::api::loadlastvalue
    linkageType: ''
    returnType: bool
    signature: bool roaring_uint32_iterator_previous(roaring_uint32_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21172,1
    - Dst: roaring::api::loadfirstvalue
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - it
    - buf
    - count
    argTypes:
    - roaring_uint32_iterator_t*
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 21179
      start: 21158
    functionDepth: 0
    functionLinenumber: 21158
    functionLinenumberEnd: 21179
    functionName: roaring::api::roaring_uint32_iterator_read
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::loadfirstvalue
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t roaring_uint32_iterator_read(roaring_uint32_iterator_t *it,\n
      \                                     uint32_t *buf, uint32_t count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 21183
      start: 21181
    functionDepth: 0
    functionLinenumber: 21181
    functionLinenumberEnd: 21183
    functionName: roaring::api::roaring_uint32_iterator_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void roaring_uint32_iterator_free(roaring_uint32_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 21210
      start: 21189
    functionDepth: 0
    functionLinenumber: 21189
    functionLinenumberEnd: 21210
    functionName: roaring::api::roaring_bitmap_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_equals(const roaring_bitmap_t *r1,\n                           const
      roaring_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21228,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21230,1
    - Dst: container_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21231,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 21244
      start: 21212
    functionDepth: 0
    functionLinenumber: 21212
    functionLinenumberEnd: 21244
    functionName: roaring::api::roaring_bitmap_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - ra_get_container_at_index
    - ra_advance_until
    - container_is_subset
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_is_subset(const roaring_bitmap_t *r1,\n                              const
      roaring_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21255,1
    - Dst: container_not_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21257,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21260,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21261,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21264,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21267,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ans_arr
    - x1_arr
    - hb
    - lb_start
    - lb_end
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 21272
      start: 21246
    functionDepth: 0
    functionLinenumber: 21246
    functionLinenumberEnd: 21272
    functionName: roaring::api::insert_flipped_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - container_free
    - ra_get_container_at_index
    - container_get_cardinality
    - ra_insert_new_key_value_at
    - container_not_range
    - container_range_of_ones
    linkageType: ''
    returnType: void
    signature: "void insert_flipped_container(roaring_array_t *ans_arr,\n                                     const
      roaring_array_t *x1_arr, uint16_t hb,\n                                     uint16_t
      lb_start, uint16_t lb_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21281,1
    - Dst: container_inot_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21282,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21286,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21287,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21289,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21290,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21294,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - x1_arr
    - hb
    - lb_start
    - lb_end
    argTypes:
    - roaring_array_t*
    - uint16_t
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 21299
      start: 21274
    functionDepth: 0
    functionLinenumber: 21274
    functionLinenumberEnd: 21299
    functionName: roaring::api::inplace_flip_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - container_free
    - container_inot_range
    - ra_get_container_at_index
    - container_get_cardinality
    - ra_remove_at_index
    - ra_insert_new_key_value_at
    - container_range_of_ones
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: "void inplace_flip_container(roaring_array_t *x1_arr, uint16_t hb,\n
      \                                  uint16_t lb_start, uint16_t lb_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21310,1
    - Dst: container_not
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21312,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21313,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21314,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21317,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21320,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ans_arr
    - x1_arr
    - hb
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 21324
      start: 21301
    functionDepth: 0
    functionLinenumber: 21301
    functionLinenumberEnd: 21324
    functionName: roaring::api::insert_fully_flipped_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - container_free
    - ra_get_container_at_index
    - container_get_cardinality
    - ra_insert_new_key_value_at
    - container_range_of_ones
    - container_not
    linkageType: ''
    returnType: void
    signature: "void insert_fully_flipped_container(roaring_array_t *ans_arr,\n                                           const
      roaring_array_t *x1_arr,\n                                           uint16_t
      hb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21332,1
    - Dst: container_inot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21334,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21336,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21337,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21339,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21340,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21344,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - x1_arr
    - hb
    argTypes:
    - roaring_array_t*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 21348
      start: 21326
    functionDepth: 0
    functionLinenumber: 21326
    functionLinenumberEnd: 21348
    functionName: roaring::api::inplace_fully_flip_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - container_free
    - container_inot
    - ra_get_container_at_index
    - container_get_cardinality
    - ra_remove_at_index
    - ra_insert_new_key_value_at
    - container_range_of_ones
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: void inplace_fully_flip_container(roaring_array_t *x1_arr, uint16_t
      hb)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21354,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21356,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21357,1
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21360,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21361,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21361,1
    - Dst: ra_append_copies_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21368,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21369,1
    - Dst: roaring::api::insert_flipped_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21371,1
    - Dst: roaring::api::insert_flipped_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21378,1
    - Dst: roaring::api::insert_fully_flipped_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21387,1
    - Dst: roaring::api::insert_flipped_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21394,1
    - Dst: ra_append_copies_after
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21400,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21401,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - x1
    - range_start
    - range_end
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 21403
      start: 21350
    functionDepth: 0
    functionLinenumber: 21350
    functionLinenumberEnd: 21403
    functionName: roaring::api::roaring_bitmap_flip
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::is_cow
    - roaring::api::roaring_bitmap_copy
    - UINT64_C
    - roaring::api::insert_fully_flipped_container
    - ra_append_copies_until
    - roaring::api::insert_flipped_container
    - ra_append_copies_after
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_set_copy_on_write
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_flip(const roaring_bitmap_t *x1,\n
      \                                     uint64_t range_start,\n                                      uint64_t
      range_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21410,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21411,1
    - Dst: roaring::api::inplace_flip_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21420,1
    - Dst: roaring::api::inplace_flip_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21426,1
    - Dst: roaring::api::inplace_fully_flip_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21434,1
    - Dst: roaring::api::inplace_flip_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - x1
    - range_start
    - range_end
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 21443
      start: 21405
    functionDepth: 0
    functionLinenumber: 21405
    functionLinenumberEnd: 21443
    functionName: roaring::api::roaring_bitmap_flip_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - UINT64_C
    - roaring::api::inplace_flip_container
    - roaring::api::inplace_fully_flip_container
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_flip_inplace(roaring_bitmap_t *x1, uint64_t range_start,\n
      \                                uint64_t range_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21448,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21450,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21460,1
    - Dst: container_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21461,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21463,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21468,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ra
    - k
    - c
    - t
    argTypes:
    - roaring_array_t*
    - int
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 21471
      start: 21445
    functionDepth: 0
    functionLinenumber: 21445
    functionLinenumberEnd: 21471
    functionName: roaring::api::offset_append_with_merge
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - container_free
    - ra_append
    - ra_get_container_at_index
    - ra_get_key_at_index
    - container_ior
    - ra_set_container_at_index
    linkageType: ''
    returnType: void
    signature: "void offset_append_with_merge(roaring_array_t *ra, int k, container_t
      *c,\n                                     uint8_t t)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21489,1
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21495,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21497,1
    - Dst: ra_append_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21511,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21526,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21536,1
    - Dst: container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21537,1
    - Dst: container_add_offset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21539,1
    - Dst: roaring::api::offset_append_with_merge
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21541,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21544,1
    - Dst: roaring::api::roaring_bitmap_repair_after_lazy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21552,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - bm
    - offset
    argTypes:
    - roaring_bitmap_t*
    - int64_t
    constantsTouched: []
    func_position:
      end: 21554
      start: 21478
    functionDepth: 0
    functionLinenumber: 21478
    functionLinenumberEnd: 21554
    functionName: roaring::api::roaring_bitmap_add_offset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_append_copy
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - roaring::api::roaring_bitmap_repair_after_lazy
    - roaring::api::offset_append_with_merge
    - container_add_offset
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_unwrap_shared
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_add_offset(const roaring_bitmap_t
      *bm,\n                                            int64_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21563,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21566,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21569,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21570,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21570,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21570,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21577,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21579,1
    - Dst: get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21583,1
    - Dst: get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21584,1
    - Dst: container_mutable_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21586,1
    - Dst: container_to_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21587,1
    - Dst: container_lazy_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21589,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21591,1
    - Dst: container_lazy_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21594,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21600,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21605,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21606,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21609,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21611,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21611,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21612,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21613,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21616,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21619,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21622,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21624,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21624,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21625,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21626,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21629,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21632,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21636,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21638,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21640,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21642,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - x1
    - x2
    - bitsetconversion
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    - bool
    constantsTouched: []
    func_position:
      end: 21645
      start: 21556
    functionDepth: 0
    functionLinenumber: 21556
    functionLinenumberEnd: 21645
    functionName: roaring::api::roaring_bitmap_lazy_or
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - container_lazy_or
    - ra_set_container_at_index
    - roaring::api::is_cow
    - container_to_bitset
    - container_free
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - container_mutable_unwrap_shared
    - get_container_type
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_lazy_ior
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_lazy_or(const roaring_bitmap_t *x1,\n
      \                                        const roaring_bitmap_t *x2,\n                                         const
      bool bitsetconversion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21657,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21666,1
    - Dst: container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21668,1
    - Dst: get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21670,1
    - Dst: get_writable_copy_if_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21671,1
    - Dst: container_mutable_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21676,1
    - Dst: container_to_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21677,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21678,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21682,1
    - Dst: container_lazy_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21685,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21689,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21692,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21699,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21700,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21705,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21708,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21711,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21711,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21712,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21713,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21716,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21722,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21726,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21727,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - x1
    - x2
    - bitsetconversion
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    - bool
    constantsTouched: []
    func_position:
      end: 21729
      start: 21647
    functionDepth: 0
    functionLinenumber: 21647
    functionLinenumberEnd: 21729
    functionName: roaring::api::roaring_bitmap_lazy_or_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - roaring::api::is_cow
    - container_to_bitset
    - container_free
    - container_is_full
    - get_writable_copy_if_shared
    - ra_get_container_at_index
    - get_copy_of_container
    - ra_get_key_at_index
    - ra_append_copy_range
    - ra_insert_new_key_value_at
    - roaring::api::roaring_bitmap_overwrite
    - container_mutable_unwrap_shared
    - get_container_type
    - ra_set_container_at_index
    - container_lazy_ior
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_lazy_or_inplace(roaring_bitmap_t *x1,\n                                    const
      roaring_bitmap_t *x2,\n                                    const bool bitsetconversion)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21737,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21740,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21743,1
    - Dst: roaring::api::roaring_bitmap_set_copy_on_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21744,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21744,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21744,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21751,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21753,1
    - Dst: container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21756,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21758,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21759,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21761,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21768,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21769,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21772,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21774,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21774,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21775,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21776,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21779,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21782,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21785,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21787,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21787,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21788,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21789,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21792,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21795,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21799,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21801,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21803,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21805,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 21808
      start: 21731
    functionDepth: 0
    functionLinenumber: 21731
    functionLinenumberEnd: 21808
    functionName: roaring::api::roaring_bitmap_lazy_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - ra_set_container_at_index
    - roaring::api::is_cow
    - container_free
    - roaring::api::roaring_bitmap_copy
    - ra_get_container_at_index
    - ra_append
    - ra_get_key_at_index
    - get_copy_of_container
    - ra_append_copy_range
    - roaring::api::roaring_bitmap_create_with_capacity
    - container_lazy_xor
    - roaring::api::roaring_bitmap_set_copy_on_write
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_lazy_xor(const roaring_bitmap_t *x1,\n
      \                                         const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21812,1
    - Dst: roaring::api::roaring_bitmap_overwrite
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21820,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21829,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21831,1
    - Dst: container_lazy_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21842,1
    - Dst: shared_container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21843,1
    - Dst: CAST_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21843,1
    - Dst: container_lazy_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21845,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21848,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21849,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21853,1
    - Dst: ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21854,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21860,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21861,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21866,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21869,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21872,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21872,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21873,1
    - Dst: ra_set_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21874,1
    - Dst: ra_insert_new_key_value_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21877,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21883,1
    - Dst: ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21887,1
    - Dst: roaring::api::is_cow
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21888,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 21890
      start: 21810
    functionDepth: 0
    functionLinenumber: 21810
    functionLinenumberEnd: 21890
    functionName: roaring::api::roaring_bitmap_lazy_xor_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::api::is_cow
    - container_free
    - container_nonzero_cardinality
    - ra_get_container_at_index
    - get_copy_of_container
    - ra_get_key_at_index
    - ra_remove_at_index
    - ra_append_copy_range
    - ra_insert_new_key_value_at
    - CAST_shared
    - roaring::api::roaring_bitmap_overwrite
    - assert
    - container_lazy_ixor
    - container_lazy_xor
    - ra_set_container_at_index
    - shared_container_free
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_lazy_xor_inplace(roaring_bitmap_t *x1,\n                                     const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_repair_after_lazy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 21903
      start: 21892
    functionDepth: 0
    functionLinenumber: 21892
    functionLinenumberEnd: 21903
    functionName: roaring::api::roaring_bitmap_repair_after_lazy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 6
    functionsReached:
    - container_repair_after_lazy
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_repair_after_lazy(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21916,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21919,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - bm
    - x
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 21927
      start: 21909
    functionDepth: 0
    functionLinenumber: 21909
    functionLinenumberEnd: 21927
    functionName: roaring::api::roaring_bitmap_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_get_cardinality
    - container_rank
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t roaring_bitmap_rank(const roaring_bitmap_t *bm, uint32_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21940,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - bm
    - begin
    - end
    - ans
    argTypes:
    - roaring_bitmap_t*
    - uint32_t*
    - uint32_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 21954
      start: 21928
    functionDepth: 0
    functionLinenumber: 21928
    functionLinenumberEnd: 21954
    functionName: roaring::api::roaring_bitmap_rank_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_get_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_rank_many(const roaring_bitmap_t *bm, const uint32_t
      *begin,\n                              const uint32_t *end, uint64_t *ans)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:21969,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - bm
    - x
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 21982
      start: 21959
    functionDepth: 0
    functionLinenumber: 21959
    functionLinenumberEnd: 21982
    functionName: roaring::api::roaring_bitmap_get_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_get_cardinality
    linkageType: ''
    returnType: int64_t
    signature: int64_t roaring_bitmap_get_index(const roaring_bitmap_t *bm, uint32_t
      x)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bm
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 21997
      start: 21988
    functionDepth: 0
    functionLinenumber: 21988
    functionLinenumberEnd: 21997
    functionName: roaring::api::roaring_bitmap_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t roaring_bitmap_minimum(const roaring_bitmap_t *bm)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bm
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22015
      start: 22003
    functionDepth: 0
    functionLinenumber: 22003
    functionLinenumberEnd: 22015
    functionName: roaring::api::roaring_bitmap_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t roaring_bitmap_maximum(const roaring_bitmap_t *bm)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_select
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22029,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - bm
    - rank
    - element
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 22039
      start: 22017
    functionDepth: 0
    functionLinenumber: 22017
    functionLinenumberEnd: 22039
    functionName: roaring::api::roaring_bitmap_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_select
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_select(const roaring_bitmap_t *bm, uint32_t rank,\n
      \                          uint32_t *element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22056,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22058,1
    - Dst: container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22060,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22064,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22070
      start: 22041
    functionDepth: 0
    functionLinenumber: 22041
    functionLinenumberEnd: 22070
    functionName: roaring::api::roaring_bitmap_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - container_intersect
    - ra_advance_until
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_intersect(const roaring_bitmap_t *x1,\n                              const
      roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_iterator_init
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22079,1
    - Dst: roaring::api::roaring_uint32_iterator_move_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - bm
    - x
    - y
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 22089
      start: 22072
    functionDepth: 1
    functionLinenumber: 22072
    functionLinenumberEnd: 22089
    functionName: roaring::api::roaring_bitmap_intersect_with_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_uint32_iterator_move_equalorlarger
    - roaring::api::roaring_iterator_init
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_intersect_with_range(const roaring_bitmap_t *bm,
      uint64_t x,\n                                         uint64_t y)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22105,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22107,1
    - Dst: container_and_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22109,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22113,1
    - Dst: ra_advance_until
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22119
      start: 22091
    functionDepth: 0
    functionLinenumber: 22091
    functionLinenumberEnd: 22119
    functionName: roaring::api::roaring_bitmap_and_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - ra_get_container_at_index
    - container_and_cardinality
    - ra_advance_until
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_and_cardinality(const roaring_bitmap_t *x1,\n
      \                                       const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22127
      start: 22121
    functionDepth: 0
    functionLinenumber: 22121
    functionLinenumberEnd: 22127
    functionName: roaring::api::roaring_bitmap_jaccard_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double roaring_bitmap_jaccard_index(const roaring_bitmap_t *x1,\n
      \                                   const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22135
      start: 22129
    functionDepth: 0
    functionLinenumber: 22129
    functionLinenumberEnd: 22135
    functionName: roaring::api::roaring_bitmap_or_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_or_cardinality(const roaring_bitmap_t *x1,\n
      \                                      const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22142
      start: 22137
    functionDepth: 0
    functionLinenumber: 22137
    functionLinenumberEnd: 22142
    functionName: roaring::api::roaring_bitmap_andnot_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_andnot_cardinality(const roaring_bitmap_t
      *x1,\n                                           const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22150
      start: 22144
    functionDepth: 0
    functionLinenumber: 22144
    functionLinenumberEnd: 22150
    functionName: roaring::api::roaring_bitmap_xor_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring_bitmap_xor_cardinality(const roaring_bitmap_t *x1,\n
      \                                       const roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22162,1
    - Dst: container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring_bitmap_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 22167
      start: 22152
    functionDepth: 0
    functionLinenumber: 22152
    functionLinenumberEnd: 22167
    functionName: roaring::api::roaring_bitmap_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - ra_get_container_at_index
    - container_contains
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_contains(const roaring_bitmap_t *r, uint32_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22175,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22176,1
    - Dst: roaring::api::roaring_bitmap_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22181,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22198,1
    - Dst: container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22200,1
    - Dst: container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22202,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22205,1
    - Dst: container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22206,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22210,1
    - Dst: container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22212,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - r
    - range_start
    - range_end
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 22217
      start: 22173
    functionDepth: 0
    functionLinenumber: 22173
    functionLinenumberEnd: 22217
    functionName: roaring::api::roaring_bitmap_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_contains
    - container_is_full
    - ra_get_container_at_index
    - UINT64_C
    - container_contains_range
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_contains_range(const roaring_bitmap_t *r,\n                                   uint64_t
      range_start, uint64_t range_end)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22221,1
    - Dst: roaring::api::roaring_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22222,1
    - Dst: roaring::api::roaring_bitmap_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22224
      start: 22219
    functionDepth: 0
    functionLinenumber: 22219
    functionLinenumberEnd: 22224
    functionName: roaring::api::roaring_bitmap_is_strict_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_get_cardinality
    - roaring::api::roaring_bitmap_is_subset
    linkageType: ''
    returnType: bool
    signature: "bool roaring_bitmap_is_strict_subset(const roaring_bitmap_t *r1,\n
      \                                    const roaring_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22264,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - rb
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22281
      start: 22254
    functionDepth: 0
    functionLinenumber: 22254
    functionLinenumberEnd: 22281
    functionName: roaring::api::roaring_bitmap_frozen_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: size_t
    signature: size_t roaring_bitmap_frozen_size_in_bytes(const roaring_bitmap_t *rb)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arena
    - num_bytes
    argTypes:
    - char**
    - size_t
    constantsTouched: []
    func_position:
      end: 22287
      start: 22283
    functionDepth: 0
    functionLinenumber: 22283
    functionLinenumberEnd: 22287
    functionName: roaring::api::arena_alloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *arena_alloc(char **arena, size_t num_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22308,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22314,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22324,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22336,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22337,1
    - Dst: bitset_container_compute_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22344,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22350,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22352,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22359,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22361,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22369,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22371,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22372,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22374,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 2
    argNames:
    - rb
    - buf
    argTypes:
    - roaring_bitmap_t*
    - char*
    constantsTouched: []
    func_position:
      end: 22375
      start: 22289
    functionDepth: 0
    functionLinenumber: 22289
    functionLinenumberEnd: 22375
    functionName: roaring::api::roaring_bitmap_frozen_serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - bitset_container_compute_cardinality
    - memcpy
    - roaring::api::arena_alloc
    - const_CAST_array
    - const_CAST_run
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_frozen_serialize(const roaring_bitmap_t *rb, char
      *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22388,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22422,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22449,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22455,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22462,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22468,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22471,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22477,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22487,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22489,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22490,1
    - Dst: UINT32_C
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22493,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22497,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 81
    argCount: 2
    argNames:
    - buf
    - length
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 22503
      start: 22377
    functionDepth: 0
    functionLinenumber: 22377
    functionLinenumberEnd: 22503
    functionName: roaring::api::roaring_bitmap_frozen_view
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - UINT32_C
    - assert
    - roaring_free
    - roaring::api::arena_alloc
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_frozen_view(const char *buf,\n                                                   size_t
      length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22516,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22519,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22548,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22584,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22588,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22601,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22616,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22629,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22633,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22639,1
    - Dst: roaring::api::arena_alloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22648,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22663
      start: 22505
    functionDepth: 0
    functionLinenumber: 22505
    functionLinenumberEnd: 22663
    functionName: roaring_bitmap_t *roaring_bitmap_portable_deserialize_frozen(const
      char *buf)
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::api::arena_alloc
    linkageType: ''
    returnType: ALLOW_UNALIGNED
    signature: ALLOW_UNALIGNED roaring_bitmap_t *roaring_bitmap_portable_deserialize_frozen(const
      char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22678,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22686,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22687,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22690,1
    - Dst: roaring::api::bitset_set_list
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22691,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22694,1
    - Dst: bitset_set_lenrange
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22697,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - r
    - bitset
    argTypes:
    - roaring_bitmap_t*
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 22705
      start: 22665
    functionDepth: 2
    functionLinenumber: 22665
    functionLinenumberEnd: 22705
    functionName: roaring::api::roaring_bitmap_to_bitset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - const_CAST_run
    - memcpy
    - roaring::api::bitset_set_list
    - const_CAST_array
    - bitset_set_lenrange
    - container_unwrap_shared
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_to_bitset(const roaring_bitmap_t *r, bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - high48_out
    argTypes:
    - uint64_t
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 22773
      start: 22769
    functionDepth: 0
    functionLinenumber: 22769
    functionLinenumberEnd: 22773
    functionName: roaring::api::split_key
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t split_key(uint64_t key, uint8_t high48_out[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22779,1
    - Dst: croaring_be64toh
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - high48
    - low16
    argTypes:
    - uint8_t[]
    - uint16_t
    constantsTouched: []
    func_position:
      end: 22781
      start: 22777
    functionDepth: 0
    functionLinenumber: 22777
    functionLinenumberEnd: 22781
    functionName: roaring::api::combine_key
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - croaring_be64toh
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t combine_key(const uint8_t high48[], uint16_t low16)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 22785
      start: 22783
    functionDepth: 0
    functionLinenumber: 22783
    functionLinenumberEnd: 22785
    functionName: roaring::api::minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t minimum(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - container
    - typecode
    argTypes:
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 22792
      start: 22787
    functionDepth: 0
    functionLinenumber: 22787
    functionLinenumberEnd: 22792
    functionName: roaring::api::create_leaf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    linkageType: ''
    returnType: leaf_t
    signature: leaf_t *create_leaf(container_t *container, uint8_t typecode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22795,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - leaf
    argTypes:
    - leaf_t*
    constantsTouched: []
    func_position:
      end: 22801
      start: 22794
    functionDepth: 0
    functionLinenumber: 22794
    functionLinenumberEnd: 22801
    functionName: roaring::api::copy_leaf_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - get_copy_of_container
    linkageType: ''
    returnType: leaf_t
    signature: leaf_t *copy_leaf_container(const leaf_t *leaf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - leaf
    argTypes:
    - leaf_t*
    constantsTouched: []
    func_position:
      end: 22803
      start: 22803
    functionDepth: 0
    functionLinenumber: 22803
    functionLinenumberEnd: 22803
    functionName: roaring::api::free_leaf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void free_leaf(leaf_t *leaf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_compare_keys
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - art_key_chunk_t[]
    - art_key_chunk_t[]
    constantsTouched: []
    func_position:
      end: 22808
      start: 22805
    functionDepth: 0
    functionLinenumber: 22805
    functionLinenumberEnd: 22808
    functionName: roaring::api::compare_high48
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_compare_keys
    linkageType: ''
    returnType: int
    signature: "int compare_high48(art_key_chunk_t key1[],\n                                 art_key_chunk_t
      key2[])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::combine_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22812,1
    - Dst: container_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 22819
      start: 22810
    functionDepth: 1
    functionLinenumber: 22810
    functionLinenumberEnd: 22819
    functionName: roaring::api::roaring64_iterator_init_at_leaf_first
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_init_iterator
    - roaring::api::combine_key
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_iterator_init_at_leaf_first(\n    roaring64_iterator_t
      *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::combine_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22823,1
    - Dst: container_init_iterator_last
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 22830
      start: 22821
    functionDepth: 1
    functionLinenumber: 22821
    functionLinenumberEnd: 22830
    functionName: roaring::api::roaring64_iterator_init_at_leaf_last
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_init_iterator_last
    - roaring::api::combine_key
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_iterator_init_at_leaf_last(\n    roaring64_iterator_t
      *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22835,1
    - Dst: roaring::api::roaring64_iterator_init_at_leaf_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22839,1
    - Dst: roaring::api::roaring64_iterator_init_at_leaf_last
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - r
    - it
    - first
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_iterator_t*
    - bool
    constantsTouched: []
    func_position:
      end: 22847
      start: 22832
    functionDepth: 2
    functionLinenumber: 22832
    functionLinenumberEnd: 22847
    functionName: roaring::api::roaring64_iterator_init_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_iterator_init_at_leaf_last
    - art_init_iterator
    - roaring::api::roaring64_iterator_init_at_leaf_first
    linkageType: ''
    returnType: roaring64_iterator_t
    signature: "roaring64_iterator_t *roaring64_iterator_init_at(\n    const roaring64_bitmap_t
      *r, roaring64_iterator_t *it, bool first)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22855
      start: 22849
    functionDepth: 0
    functionLinenumber: 22849
    functionLinenumberEnd: 22855
    functionName: roaring::api::roaring64_bitmap_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: roaring64_bitmap_t *roaring64_bitmap_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22858,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22861,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22862,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22863,1
    - Dst: art_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22865,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22867
      start: 22857
    functionDepth: 1
    functionLinenumber: 22857
    functionLinenumberEnd: 22867
    functionName: roaring::api::roaring64_bitmap_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_init_iterator
    - art_free
    - roaring_free
    - art_iterator_next
    - roaring::api::free_leaf
    linkageType: ''
    returnType: void
    signature: void roaring64_bitmap_free(roaring64_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22870,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22872,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22876,1
    - Dst: roaring::api::create_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22878,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22879,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 22883
      start: 22869
    functionDepth: 1
    functionLinenumber: 22869
    functionLinenumberEnd: 22883
    functionName: roaring::api::roaring64_bitmap_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::create_leaf
    - art_init_iterator
    - art_insert
    - get_copy_of_container
    - roaring::api::roaring64_bitmap_create
    - art_iterator_next
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: roaring64_bitmap_t *roaring64_bitmap_copy(const roaring64_bitmap_t
      *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22890,1
    - Dst: roaring::api::roaring64_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22894,1
    - Dst: container_from_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22907,1
    - Dst: roaring::api::split_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22911,1
    - Dst: roaring::api::create_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22912,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22913,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - min
    - max
    - step
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 22923
      start: 22885
    functionDepth: 1
    functionLinenumber: 22885
    functionLinenumberEnd: 22923
    functionName: roaring::api::roaring64_bitmap_from_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::create_leaf
    - container_from_range
    - art_insert
    - roaring::api::roaring64_bitmap_create
    - roaring::api::roaring64_bitmap_add
    - roaring::api::split_key
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: "roaring64_bitmap_t *roaring64_bitmap_from_range(uint64_t min, uint64_t
      max,\n                                                uint64_t step)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22927,1
    - Dst: roaring::api::roaring64_bitmap_add_many
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n_args
    - vals
    argTypes:
    - size_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 22930
      start: 22925
    functionDepth: 1
    functionLinenumber: 22925
    functionLinenumberEnd: 22930
    functionName: roaring::api::roaring64_bitmap_of_ptr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_bitmap_add_many
    - roaring::api::roaring64_bitmap_create
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: "roaring64_bitmap_t *roaring64_bitmap_of_ptr(size_t n_args,\n                                            const
      uint64_t *vals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22933,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22934,1
    - Dst: va_start
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22936,1
    - Dst: roaring::api::roaring64_bitmap_add_bulk
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22939,1
    - Dst: va_end
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - n_args
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 22943
      start: 22932
    functionDepth: 1
    functionLinenumber: 22932
    functionLinenumberEnd: 22943
    functionName: roaring::api::roaring64_bitmap_of
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    - va_start
    - va_end
    - roaring::api::roaring64_bitmap_create
    - roaring::api::roaring64_bitmap_add_bulk
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: roaring64_bitmap_t *roaring64_bitmap_of(size_t n_args, ...)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22952,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22954,1
    - Dst: array_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22960,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22963,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22964,1
    - Dst: roaring::api::create_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22965,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - r
    - high48
    - low16
    - leaf
    argTypes:
    - roaring64_bitmap_t*
    - uint8_t*
    - uint16_t
    - leaf_t*
    constantsTouched: []
    func_position:
      end: 22969
      start: 22945
    functionDepth: 1
    functionLinenumber: 22945
    functionLinenumberEnd: 22969
    functionName: roaring::api::containerptr_roaring64_bitmap_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::create_leaf
    - container_free
    - container_add
    - art_insert
    - assert
    - array_container_create
    linkageType: ''
    returnType: leaf_t
    signature: "leaf_t *containerptr_roaring64_bitmap_add(roaring64_bitmap_t *r,\n
      \                                                       uint8_t *high48,\n                                                        uint16_t
      low16,\n                                                        leaf_t *leaf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22974,1
    - Dst: roaring::api::containerptr_roaring64_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 22976
      start: 22971
    functionDepth: 2
    functionLinenumber: 22971
    functionLinenumberEnd: 22976
    functionName: roaring::api::roaring64_bitmap_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::api::containerptr_roaring64_bitmap_add
    - art_find
    linkageType: ''
    returnType: void
    signature: void roaring64_bitmap_add(roaring64_bitmap_t *r, uint64_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22981,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22986,1
    - Dst: roaring::api::containerptr_roaring64_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:22988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 22992
      start: 22978
    functionDepth: 2
    functionLinenumber: 22978
    functionLinenumberEnd: 22992
    functionName: roaring::api::roaring64_bitmap_add_checked
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_get_cardinality
    - roaring::api::containerptr_roaring64_bitmap_add
    - art_find
    linkageType: ''
    returnType: bool
    signature: bool roaring64_bitmap_add_checked(roaring64_bitmap_t *r, uint64_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23000,1
    - Dst: container_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23004,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23007,1
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23014,1
    - Dst: roaring::api::containerptr_roaring64_bitmap_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23016,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - r
    - context
    - val
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bulk_context_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23019
      start: 22994
    functionDepth: 2
    functionLinenumber: 22994
    functionLinenumberEnd: 23019
    functionName: roaring::api::roaring64_bitmap_add_bulk
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - container_free
    - art_find
    - container_add
    - memcpy
    - roaring::api::compare_high48
    - roaring::api::containerptr_roaring64_bitmap_add
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_add_bulk(roaring64_bitmap_t *r,\n                               roaring64_bulk_context_t
      *context,\n                               uint64_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23027,1
    - Dst: roaring::api::roaring64_bitmap_add_bulk
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - r
    - n_args
    - vals
    argTypes:
    - roaring64_bitmap_t*
    - size_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 23032
      start: 23021
    functionDepth: 3
    functionLinenumber: 23021
    functionLinenumberEnd: 23032
    functionName: roaring::api::roaring64_bitmap_add_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memset
    - roaring::api::roaring64_bitmap_add_bulk
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_add_many(roaring64_bitmap_t *r, size_t n_args,\n
      \                              const uint64_t *vals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23036,1
    - Dst: container_add_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23039,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23042,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23051,1
    - Dst: roaring::api::create_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23052,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - art
    - high48
    - min
    - max
    argTypes:
    - art_t*
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 23054
      start: 23034
    functionDepth: 1
    functionLinenumber: 23034
    functionLinenumberEnd: 23054
    functionName: roaring::api::add_range_closed_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::create_leaf
    - container_free
    - art_find
    - art_insert
    - container_range_of_ones
    - container_add_range
    linkageType: ''
    returnType: void
    signature: "void add_range_closed_at(art_t *art, uint8_t *high48,\n                                       uint16_t
      min, uint16_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_add_range_closed
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23062
      start: 23056
    functionDepth: 1
    functionLinenumber: 23056
    functionLinenumberEnd: 23062
    functionName: roaring::api::roaring64_bitmap_add_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_bitmap_add_range_closed
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_add_range(roaring64_bitmap_t *r, uint64_t min,\n
      \                               uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23075,1
    - Dst: roaring::api::add_range_closed_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23077,1
    - Dst: roaring::api::add_range_closed_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23083,1
    - Dst: roaring::api::split_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23089,1
    - Dst: roaring::api::add_range_closed_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23090,1
    - Dst: roaring::api::add_range_closed_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23092,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23093
      start: 23064
    functionDepth: 2
    functionLinenumber: 23064
    functionLinenumberEnd: 23093
    functionName: roaring::api::roaring64_bitmap_add_range_closed
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::api::compare_high48
    - roaring::api::add_range_closed_at
    - roaring::api::split_key
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_add_range_closed(roaring64_bitmap_t *r, uint64_t
      min,\n                                       uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23098,1
    - Dst: container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23103
      start: 23095
    functionDepth: 0
    functionLinenumber: 23095
    functionLinenumberEnd: 23103
    functionName: roaring::api::roaring64_bitmap_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_contains
    - art_find
    linkageType: ''
    returnType: bool
    signature: bool roaring64_bitmap_contains(const roaring64_bitmap_t *r, uint64_t
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23117,1
    - Dst: roaring::api::combine_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23118,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23136,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23140,1
    - Dst: container_is_full
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23147,1
    - Dst: container_contains_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23150,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23155,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23158
      start: 23105
    functionDepth: 1
    functionLinenumber: 23105
    functionLinenumberEnd: 23158
    functionName: roaring::api::roaring64_bitmap_contains_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_is_full
    - art_lower_bound
    - roaring::api::compare_high48
    - roaring::api::combine_key
    - art_iterator_next
    - container_contains_range
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_contains_range(const roaring64_bitmap_t *r,
      uint64_t min,\n                                     uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23169,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23174,1
    - Dst: container_contains
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - r
    - context
    - val
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bulk_context_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23178
      start: 23160
    functionDepth: 0
    functionLinenumber: 23160
    functionLinenumberEnd: 23178
    functionName: roaring::api::roaring64_bitmap_contains_bulk
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_contains
    - memcpy
    - art_find
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_contains_bulk(const roaring64_bitmap_t *r,\n
      \                                   roaring64_bulk_context_t *context,\n                                    uint64_t
      val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23182,1
    - Dst: container_select
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23192,1
    - Dst: roaring::api::combine_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23194,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - r
    - rank
    - element
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 23203
      start: 23180
    functionDepth: 1
    functionLinenumber: 23180
    functionLinenumberEnd: 23203
    functionName: roaring::api::roaring64_bitmap_select
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_iterator_next
    - container_select
    - art_init_iterator
    - roaring::api::combine_key
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_select(const roaring64_bitmap_t *r, uint64_t
      rank,\n                             uint64_t *element)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23209,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23215,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23218,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23225
      start: 23205
    functionDepth: 0
    functionLinenumber: 23205
    functionLinenumberEnd: 23225
    functionName: roaring::api::roaring64_bitmap_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_iterator_next
    - container_get_cardinality
    - container_rank
    - art_init_iterator
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t roaring64_bitmap_rank(const roaring64_bitmap_t *r, uint64_t
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23232,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23238,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - r
    - val
    - out_index
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 23253
      start: 23227
    functionDepth: 0
    functionLinenumber: 23227
    functionLinenumberEnd: 23253
    functionName: roaring::api::roaring64_bitmap_get_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_get_cardinality
    - art_iterator_next
    - art_init_iterator
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_get_index(const roaring64_bitmap_t *r, uint64_t
      val,\n                                uint64_t *out_index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23265,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23267,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23271,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23272,1
    - Dst: art_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23273,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - r
    - high48
    - low16
    - leaf
    argTypes:
    - roaring64_bitmap_t*
    - uint8_t*
    - uint16_t
    - leaf_t*
    constantsTouched: []
    func_position:
      end: 23280
      start: 23255
    functionDepth: 1
    functionLinenumber: 23255
    functionLinenumberEnd: 23280
    functionName: roaring::api::containerptr_roaring64_bitmap_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - container_remove
    - roaring::api::free_leaf
    - art_erase
    - container_nonzero_cardinality
    linkageType: ''
    returnType: leaf_t
    signature: "leaf_t *containerptr_roaring64_bitmap_remove(\n    roaring64_bitmap_t
      *r, uint8_t *high48, uint16_t low16, leaf_t *leaf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23287,1
    - Dst: roaring::api::containerptr_roaring64_bitmap_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23289
      start: 23282
    functionDepth: 2
    functionLinenumber: 23282
    functionLinenumberEnd: 23289
    functionName: roaring::api::roaring64_bitmap_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_find
    - roaring::api::containerptr_roaring64_bitmap_remove
    linkageType: ''
    returnType: void
    signature: void roaring64_bitmap_remove(roaring64_bitmap_t *r, uint64_t val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23295,1
    - Dst: roaring::api::containerptr_roaring64_bitmap_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - r
    - val
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23309
      start: 23291
    functionDepth: 2
    functionLinenumber: 23291
    functionLinenumberEnd: 23309
    functionName: roaring::api::roaring64_bitmap_remove_checked
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_find
    - roaring::api::containerptr_roaring64_bitmap_remove
    linkageType: ''
    returnType: bool
    signature: bool roaring64_bitmap_remove_checked(roaring64_bitmap_t *r, uint64_t
      val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23318,1
    - Dst: container_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23322,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23325,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23329,1
    - Dst: art_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23330,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23331,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23332,1
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23337,1
    - Dst: roaring::api::containerptr_roaring64_bitmap_remove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23339,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - r
    - context
    - val
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bulk_context_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23342
      start: 23311
    functionDepth: 2
    functionLinenumber: 23311
    functionLinenumberEnd: 23342
    functionName: roaring::api::roaring64_bitmap_remove_bulk
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_find
    - memcpy
    - roaring::api::compare_high48
    - roaring::api::containerptr_roaring64_bitmap_remove
    - container_remove
    - roaring::api::free_leaf
    - art_erase
    - container_nonzero_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_remove_bulk(roaring64_bitmap_t *r,\n                                  roaring64_bulk_context_t
      *context,\n                                  uint64_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23350,1
    - Dst: roaring::api::roaring64_bitmap_remove_bulk
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - r
    - n_args
    - vals
    argTypes:
    - roaring64_bitmap_t*
    - size_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 23355
      start: 23344
    functionDepth: 3
    functionLinenumber: 23344
    functionLinenumberEnd: 23355
    functionName: roaring::api::roaring64_bitmap_remove_many
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memset
    - roaring::api::roaring64_bitmap_remove_bulk
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_remove_many(roaring64_bitmap_t *r, size_t n_args,\n
      \                                 const uint64_t *vals)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23359,1
    - Dst: container_remove_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23364,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23367,1
    - Dst: art_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23372,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - art
    - high48
    - min
    - max
    argTypes:
    - art_t*
    - uint8_t*
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 23376
      start: 23357
    functionDepth: 1
    functionLinenumber: 23357
    functionLinenumberEnd: 23376
    functionName: roaring::api::remove_range_closed_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_find
    - roaring::api::free_leaf
    - container_remove_range
    - art_erase
    linkageType: ''
    returnType: void
    signature: "void remove_range_closed_at(art_t *art, uint8_t *high48,\n                                          uint16_t
      min, uint16_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_remove_range_closed
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23384
      start: 23378
    functionDepth: 1
    functionLinenumber: 23378
    functionLinenumberEnd: 23384
    functionName: roaring::api::roaring64_bitmap_remove_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_bitmap_remove_range_closed
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_remove_range(roaring64_bitmap_t *r, uint64_t
      min,\n                                   uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23397,1
    - Dst: roaring::api::remove_range_closed_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23399,1
    - Dst: roaring::api::remove_range_closed_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23405,1
    - Dst: art_upper_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23407,1
    - Dst: art_compare_keys
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23408,1
    - Dst: art_iterator_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23409,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23410,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23411,1
    - Dst: roaring::api::remove_range_closed_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23414
      start: 23386
    functionDepth: 2
    functionLinenumber: 23386
    functionLinenumberEnd: 23414
    functionName: roaring::api::roaring64_bitmap_remove_range_closed
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - container_free
    - art_compare_keys
    - roaring::api::compare_high48
    - art_upper_bound
    - roaring::api::free_leaf
    - art_iterator_erase
    - roaring::api::remove_range_closed_at
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_remove_range_closed(roaring64_bitmap_t *r, uint64_t
      min,\n                                          uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23417,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23422,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23426
      start: 23416
    functionDepth: 0
    functionLinenumber: 23416
    functionLinenumberEnd: 23426
    functionName: roaring::api::roaring64_bitmap_get_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_get_cardinality
    - art_iterator_next
    - art_init_iterator
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t roaring64_bitmap_get_cardinality(const roaring64_bitmap_t
      *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23441,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23454,1
    - Dst: container_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23459,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23461,1
    - Dst: container_rank
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23465,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23467,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23470
      start: 23428
    functionDepth: 1
    functionLinenumber: 23428
    functionLinenumberEnd: 23470
    functionName: roaring::api::roaring64_bitmap_range_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_lower_bound
    - container_get_cardinality
    - roaring::api::compare_high48
    - art_iterator_next
    - container_rank
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring64_bitmap_range_cardinality(const roaring64_bitmap_t
      *r,\n                                            uint64_t min, uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_is_empty
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23474
      start: 23472
    functionDepth: 0
    functionLinenumber: 23472
    functionLinenumberEnd: 23474
    functionName: roaring::api::roaring64_bitmap_is_empty
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_is_empty
    linkageType: ''
    returnType: bool
    signature: bool roaring64_bitmap_is_empty(const roaring64_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23477,1
    - Dst: roaring::api::combine_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23482,1
    - Dst: container_minimum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23484
      start: 23476
    functionDepth: 1
    functionLinenumber: 23476
    functionLinenumberEnd: 23484
    functionName: roaring::api::roaring64_bitmap_minimum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_minimum
    - art_init_iterator
    - roaring::api::combine_key
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t roaring64_bitmap_minimum(const roaring64_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23487,1
    - Dst: roaring::api::combine_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23492,1
    - Dst: container_maximum
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23494
      start: 23486
    functionDepth: 1
    functionLinenumber: 23486
    functionLinenumberEnd: 23494
    functionName: roaring::api::roaring64_bitmap_maximum
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_maximum
    - art_init_iterator
    - roaring::api::combine_key
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t roaring64_bitmap_maximum(const roaring64_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23497,1
    - Dst: convert_run_optimize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23504,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23511
      start: 23496
    functionDepth: 0
    functionLinenumber: 23496
    functionLinenumberEnd: 23511
    functionName: roaring::api::roaring64_bitmap_run_optimize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_iterator_next
    - convert_run_optimize
    - art_init_iterator
    linkageType: ''
    returnType: bool
    signature: bool roaring64_bitmap_run_optimize(roaring64_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: container_internal_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - reason
    argTypes:
    - art_val_t*
    - char**
    constantsTouched: []
    func_position:
      end: 23517
      start: 23513
    functionDepth: 0
    functionLinenumber: 23513
    functionLinenumberEnd: 23517
    functionName: roaring::api::roaring64_leaf_internal_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_internal_validate
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_leaf_internal_validate(const art_val_t *val,\n                                             const
      char **reason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_internal_validate
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - reason
    argTypes:
    - roaring64_bitmap_t*
    - char**
    constantsTouched: []
    func_position:
      end: 23523
      start: 23519
    functionDepth: 0
    functionLinenumber: 23519
    functionLinenumberEnd: 23523
    functionName: roaring::api::roaring64_bitmap_internal_validate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_internal_validate
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_internal_validate(const roaring64_bitmap_t *r,\n
      \                                       const char **reason)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23527,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23528,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23531,1
    - Dst: container_equals
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23536,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23540,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23544
      start: 23525
    functionDepth: 1
    functionLinenumber: 23525
    functionLinenumberEnd: 23544
    functionName: roaring::api::roaring64_bitmap_equals
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_equals
    - art_iterator_next
    - roaring::api::compare_high48
    - art_init_iterator
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_equals(const roaring64_bitmap_t *r1,\n                             const
      roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23548,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23549,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23556,1
    - Dst: container_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23560,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23564,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23565,1
    - Dst: art_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23571,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23575
      start: 23546
    functionDepth: 1
    functionLinenumber: 23546
    functionLinenumberEnd: 23575
    functionName: roaring::api::roaring64_bitmap_is_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_init_iterator
    - art_iterator_lower_bound
    - roaring::api::compare_high48
    - container_is_subset
    - art_iterator_next
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_is_subset(const roaring64_bitmap_t *r1,\n                                const
      roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23579,1
    - Dst: roaring::api::roaring64_bitmap_get_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23580,1
    - Dst: roaring::api::roaring64_bitmap_is_subset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23582
      start: 23577
    functionDepth: 2
    functionLinenumber: 23577
    functionLinenumberEnd: 23582
    functionName: roaring::api::roaring64_bitmap_is_strict_subset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_bitmap_get_cardinality
    - roaring::api::roaring64_bitmap_is_subset
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_is_strict_subset(const roaring64_bitmap_t *r1,\n
      \                                      const roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23586,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23588,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23589,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23599,1
    - Dst: container_and
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23602,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23606,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23608,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23610,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23611,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23613,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23614,1
    - Dst: art_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23617,1
    - Dst: art_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23624
      start: 23584
    functionDepth: 1
    functionLinenumber: 23584
    functionLinenumberEnd: 23624
    functionName: roaring::api::roaring64_bitmap_and
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_init_iterator
    - art_insert
    - art_iterator_lower_bound
    - container_and
    - roaring::api::roaring64_bitmap_create
    - art_iterator_next
    - roaring_malloc
    - roaring::api::free_leaf
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: "roaring64_bitmap_t *roaring64_bitmap_and(const roaring64_bitmap_t
      *r1,\n                                         const roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23630,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23631,1
    - Dst: container_and_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23644,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23646,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23647,1
    - Dst: art_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23650,1
    - Dst: art_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23657
      start: 23626
    functionDepth: 0
    functionLinenumber: 23626
    functionLinenumberEnd: 23657
    functionName: roaring::api::roaring64_bitmap_and_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_and_cardinality
    - art_iterator_next
    - art_init_iterator
    - art_iterator_lower_bound
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring64_bitmap_and_cardinality(const roaring64_bitmap_t
      *r1,\n                                          const roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23665,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23666,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23678,1
    - Dst: container_and
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23693,1
    - Dst: container_iand
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23697,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23703,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23707,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23708,1
    - Dst: art_iterator_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23709,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23710,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23714,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23716,1
    - Dst: art_iterator_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23722,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23723,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23724,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23725,1
    - Dst: art_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23728,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23731
      start: 23660
    functionDepth: 1
    functionLinenumber: 23660
    functionLinenumberEnd: 23731
    functionName: roaring::api::roaring64_bitmap_and_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_init_iterator
    - art_iterator_lower_bound
    - container_and
    - roaring::api::compare_high48
    - assert
    - art_iterator_erase
    - art_iterator_next
    - roaring::api::free_leaf
    - container_iand
    - container_nonzero_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_and_inplace(roaring64_bitmap_t *r1,\n                                  const
      roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23736,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23737,1
    - Dst: container_intersect
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23749,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23751,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23752,1
    - Dst: art_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23755,1
    - Dst: art_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23758,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23762
      start: 23733
    functionDepth: 0
    functionLinenumber: 23733
    functionLinenumberEnd: 23762
    functionName: roaring::api::roaring64_bitmap_intersect
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_iterator_next
    - container_intersect
    - art_init_iterator
    - art_iterator_lower_bound
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_intersect(const roaring64_bitmap_t *r1,\n                                const
      roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_iterator_init_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23770,1
    - Dst: roaring::api::roaring64_iterator_move_equalorlarger
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23771,1
    - Dst: roaring::api::roaring64_iterator_has_value
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23774,1
    - Dst: roaring::api::roaring64_iterator_value
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 23776
      start: 23764
    functionDepth: 3
    functionLinenumber: 23764
    functionLinenumberEnd: 23776
    functionName: roaring::api::roaring64_bitmap_intersect_with_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_iterator_has_value
    - roaring::api::roaring64_iterator_move_equalorlarger
    - roaring::api::roaring64_iterator_init_at
    - roaring::api::roaring64_iterator_value
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_intersect_with_range(const roaring64_bitmap_t
      *r,\n                                           uint64_t min, uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23784
      start: 23778
    functionDepth: 0
    functionLinenumber: 23778
    functionLinenumberEnd: 23784
    functionName: roaring::api::roaring64_bitmap_jaccard_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: "double roaring64_bitmap_jaccard_index(const roaring64_bitmap_t *r1,\n
      \                                     const roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23788,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23790,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23791,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23806,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23811,1
    - Dst: container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23812,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23815,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23816,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23817,1
    - Dst: roaring::api::copy_leaf_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23822,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23823,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23824,1
    - Dst: roaring::api::copy_leaf_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23827,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23828,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23829,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23833
      start: 23786
    functionDepth: 1
    functionLinenumber: 23786
    functionLinenumberEnd: 23833
    functionName: roaring::api::roaring64_bitmap_or
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_init_iterator
    - art_insert
    - roaring::api::compare_high48
    - roaring::api::roaring64_bitmap_create
    - container_or
    - art_iterator_next
    - roaring::api::copy_leaf_container
    - roaring_malloc
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: "roaring64_bitmap_t *roaring64_bitmap_or(const roaring64_bitmap_t *r1,\n
      \                                       const roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23841
      start: 23835
    functionDepth: 0
    functionLinenumber: 23835
    functionLinenumberEnd: 23841
    functionName: roaring::api::roaring64_bitmap_or_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring64_bitmap_or_cardinality(const roaring64_bitmap_t
      *r1,\n                                         const roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23848,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23849,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23864,1
    - Dst: container_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23872,1
    - Dst: container_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23876,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23881,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23885,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23886,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23891,1
    - Dst: roaring::api::copy_leaf_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23894,1
    - Dst: art_iterator_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23895,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23897,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23900
      start: 23843
    functionDepth: 1
    functionLinenumber: 23843
    functionLinenumberEnd: 23900
    functionName: roaring::api::roaring64_bitmap_or_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_init_iterator
    - art_iterator_insert
    - roaring::api::compare_high48
    - container_or
    - art_iterator_next
    - roaring::api::copy_leaf_container
    - container_ior
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_or_inplace(roaring64_bitmap_t *r1,\n                                 const
      roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23904,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23906,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23907,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23922,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23927,1
    - Dst: container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23928,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23931,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23933,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23935,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23937,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23939,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23940,1
    - Dst: roaring::api::copy_leaf_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23945,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23946,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23947,1
    - Dst: roaring::api::copy_leaf_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23950,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23951,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23952,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23956
      start: 23902
    functionDepth: 1
    functionLinenumber: 23902
    functionLinenumberEnd: 23956
    functionName: roaring::api::roaring64_bitmap_xor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_init_iterator
    - art_insert
    - container_xor
    - roaring::api::compare_high48
    - roaring::api::roaring64_bitmap_create
    - art_iterator_next
    - roaring::api::copy_leaf_container
    - roaring_malloc
    - roaring::api::free_leaf
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: "roaring64_bitmap_t *roaring64_bitmap_xor(const roaring64_bitmap_t
      *r1,\n                                         const roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 23964
      start: 23958
    functionDepth: 0
    functionLinenumber: 23958
    functionLinenumberEnd: 23964
    functionName: roaring::api::roaring64_bitmap_xor_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring64_bitmap_xor_cardinality(const roaring64_bitmap_t
      *r1,\n                                          const roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23968,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23969,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23970,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23985,1
    - Dst: container_xor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:23995,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24002,1
    - Dst: container_ixor
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24005,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24012,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24013,1
    - Dst: art_iterator_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24014,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24015,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24019,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24021,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24026,1
    - Dst: roaring::api::copy_leaf_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24029,1
    - Dst: art_iterator_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24031,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24033,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24035,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24037,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 24040
      start: 23966
    functionDepth: 1
    functionLinenumber: 23966
    functionLinenumberEnd: 24040
    functionName: roaring::api::roaring64_bitmap_xor_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_init_iterator
    - art_insert
    - art_iterator_insert
    - container_xor
    - container_ixor
    - roaring::api::compare_high48
    - assert
    - art_iterator_erase
    - art_iterator_next
    - roaring::api::copy_leaf_container
    - roaring::api::free_leaf
    - container_nonzero_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_xor_inplace(roaring64_bitmap_t *r1,\n                                  const
      roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24044,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24046,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24047,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24059,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24062,1
    - Dst: container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24065,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24069,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24071,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24073,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24075,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24077,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24078,1
    - Dst: roaring::api::copy_leaf_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24083,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24084,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24085,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24088,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 24092
      start: 24042
    functionDepth: 1
    functionLinenumber: 24042
    functionLinenumberEnd: 24092
    functionName: roaring::api::roaring64_bitmap_andnot
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_init_iterator
    - art_insert
    - container_andnot
    - roaring::api::compare_high48
    - roaring::api::roaring64_bitmap_create
    - art_iterator_next
    - roaring::api::copy_leaf_container
    - roaring_malloc
    - roaring::api::free_leaf
    - container_nonzero_cardinality
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: "roaring64_bitmap_t *roaring64_bitmap_andnot(const roaring64_bitmap_t
      *r1,\n                                            const roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 24099
      start: 24094
    functionDepth: 0
    functionLinenumber: 24094
    functionLinenumberEnd: 24099
    functionName: roaring::api::roaring64_bitmap_andnot_cardinality
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring64_bitmap_andnot_cardinality(const roaring64_bitmap_t
      *r1,\n                                             const roaring64_bitmap_t
      *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24103,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24104,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24116,1
    - Dst: container_andnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24126,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24133,1
    - Dst: container_iandnot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24136,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24145,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24146,1
    - Dst: art_iterator_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24147,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24148,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24152,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24154,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24159,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 24165
      start: 24101
    functionDepth: 1
    functionLinenumber: 24101
    functionLinenumberEnd: 24165
    functionName: roaring::api::roaring64_bitmap_andnot_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_free
    - art_init_iterator
    - container_andnot
    - roaring::api::compare_high48
    - container_iandnot
    - art_iterator_erase
    - art_iterator_next
    - roaring::api::free_leaf
    - container_nonzero_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_andnot_inplace(roaring64_bitmap_t *r1,\n                                     const
      roaring64_bitmap_t *r2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24175,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24180,1
    - Dst: container_not
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24184,1
    - Dst: container_not_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24187,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24190,1
    - Dst: roaring::api::create_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24191,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - r
    - high48
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint8_t[]
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 24195
      start: 24172
    functionDepth: 1
    functionLinenumber: 24172
    functionLinenumberEnd: 24195
    functionName: roaring::api::roaring64_flip_leaf
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::create_leaf
    - container_free
    - art_find
    - container_range_of_ones
    - container_not_range
    - container_not
    - container_nonzero_cardinality
    linkageType: ''
    returnType: leaf_t
    signature: "leaf_t *roaring64_flip_leaf(const roaring64_bitmap_t *r,\n                                   uint8_t
      high48[], uint32_t min,\n                                   uint32_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_find
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24204,1
    - Dst: container_range_of_ones
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24209,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24210,1
    - Dst: roaring::api::create_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24211,1
    - Dst: container_inot
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24218,1
    - Dst: container_inot_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24221,1
    - Dst: container_nonzero_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24228,1
    - Dst: art_erase
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24229,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24230,1
    - Dst: roaring::api::free_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - r
    - high48
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint8_t[]
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 24233
      start: 24202
    functionDepth: 1
    functionLinenumber: 24202
    functionLinenumberEnd: 24233
    functionName: roaring::api::roaring64_flip_leaf_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::create_leaf
    - container_free
    - art_find
    - container_inot
    - art_insert
    - container_inot_range
    - container_range_of_ones
    - roaring::api::free_leaf
    - art_erase
    - container_nonzero_cardinality
    linkageType: ''
    returnType: void
    signature: "void roaring64_flip_leaf_inplace(roaring64_bitmap_t *r, uint8_t high48[],\n
      \                                       uint32_t min, uint32_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24238,1
    - Dst: roaring::api::roaring64_bitmap_flip_closed
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 24241
      start: 24235
    functionDepth: 2
    functionLinenumber: 24235
    functionLinenumberEnd: 24241
    functionName: roaring::api::roaring64_bitmap_flip
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_bitmap_copy
    - roaring::api::roaring64_bitmap_flip_closed
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: "roaring64_bitmap_t *roaring64_bitmap_flip(const roaring64_bitmap_t
      *r,\n                                          uint64_t min, uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24246,1
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24255,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24256,1
    - Dst: roaring::api::compare_high48
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24259,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24262,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24264,1
    - Dst: roaring::api::create_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24265,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24266,1
    - Dst: roaring::api::split_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24273,1
    - Dst: roaring::api::roaring64_flip_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24284,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24287,1
    - Dst: art_upper_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24292,1
    - Dst: get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24296,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24298,1
    - Dst: roaring::api::create_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24299,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24300,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - r1
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 24304
      start: 24243
    functionDepth: 2
    functionLinenumber: 24243
    functionLinenumberEnd: 24304
    functionName: roaring::api::roaring64_bitmap_flip_closed
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::api::roaring64_bitmap_copy
    - roaring::api::create_leaf
    - art_init_iterator
    - get_copy_of_container
    - art_insert
    - roaring::api::compare_high48
    - roaring::api::roaring64_bitmap_create
    - roaring::api::roaring64_flip_leaf
    - art_upper_bound
    - roaring::api::split_key
    - art_iterator_next
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: "roaring64_bitmap_t *roaring64_bitmap_flip_closed(const roaring64_bitmap_t
      *r1,\n                                                 uint64_t min, uint64_t
      max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_bitmap_flip_closed_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 24312
      start: 24306
    functionDepth: 1
    functionLinenumber: 24306
    functionLinenumberEnd: 24312
    functionName: roaring::api::roaring64_bitmap_flip_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_bitmap_flip_closed_inplace
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_flip_inplace(roaring64_bitmap_t *r, uint64_t
      min,\n                                   uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::split_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24328,1
    - Dst: roaring::api::roaring64_flip_leaf_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 24342
      start: 24314
    functionDepth: 2
    functionLinenumber: 24314
    functionLinenumberEnd: 24342
    functionName: roaring::api::roaring64_bitmap_flip_closed_inplace
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::api::roaring64_flip_leaf_inplace
    - roaring::api::split_key
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_flip_closed_inplace(roaring64_bitmap_t *r, uint64_t
      min,\n                                          uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24346,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 24358
      start: 24345
    functionDepth: 0
    functionLinenumber: 24345
    functionLinenumberEnd: 24358
    functionName: roaring::api::count_high32
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_iterator_next
    - art_init_iterator
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t count_high32(const roaring64_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ra_clear_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24362,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 24364
      start: 24361
    functionDepth: 0
    functionLinenumber: 24361
    functionLinenumberEnd: 24364
    functionName: roaring::api::roaring_bitmap_free_without_containers
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_free
    - ra_clear_without_containers
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_free_without_containers(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24375,1
    - Dst: roaring::api::roaring_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24389,1
    - Dst: roaring::api::roaring_bitmap_free_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24390,1
    - Dst: roaring::api::combine_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24396,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24399,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24402,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24407,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24410,1
    - Dst: roaring::api::roaring_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24419,1
    - Dst: roaring::api::roaring_bitmap_free_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24420,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 24424
      start: 24366
    functionDepth: 1
    functionLinenumber: 24366
    functionLinenumberEnd: 24424
    functionName: roaring::api::roaring64_bitmap_portable_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_init_iterator
    - ra_append
    - roaring::api::roaring_bitmap_portable_size_in_bytes
    - roaring::api::combine_key
    - art_iterator_next
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_free_without_containers
    linkageType: ''
    returnType: size_t
    signature: size_t roaring64_bitmap_portable_size_in_bytes(const roaring64_bitmap_t
      *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24437,1
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24440,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24451,1
    - Dst: roaring::api::roaring_bitmap_portable_serialize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24456,1
    - Dst: roaring::api::roaring_bitmap_free_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24457,1
    - Dst: roaring::api::combine_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24464,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24466,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24469,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24474,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24477,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24482,1
    - Dst: roaring::api::roaring_bitmap_portable_serialize
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24487,1
    - Dst: roaring::api::roaring_bitmap_free_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - roaring64_bitmap_t*
    - char*
    constantsTouched: []
    func_position:
      end: 24492
      start: 24426
    functionDepth: 1
    functionLinenumber: 24426
    functionLinenumberEnd: 24492
    functionName: roaring::api::roaring64_bitmap_portable_serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - art_init_iterator
    - ra_append
    - roaring::api::roaring_bitmap_portable_serialize
    - roaring::api::combine_key
    - art_iterator_next
    - roaring::api::roaring_bitmap_create_with_capacity
    - roaring::api::roaring_bitmap_free_without_containers
    linkageType: ''
    returnType: size_t
    signature: "size_t roaring64_bitmap_portable_serialize(const roaring64_bitmap_t
      *r,\n                                           char *buf)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 24538
      start: 24494
    functionDepth: 0
    functionLinenumber: 24494
    functionLinenumberEnd: 24538
    functionName: roaring::api::roaring64_bitmap_portable_deserialize_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t roaring64_bitmap_portable_deserialize_size(const char *buf,\n
      \                                                 size_t maxbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24554,1
    - Dst: roaring::api::roaring64_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24563,1
    - Dst: roaring::api::roaring64_bitmap_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24569,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24572,1
    - Dst: roaring::api::roaring64_bitmap_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24581,1
    - Dst: roaring::api::roaring_bitmap_portable_deserialize_safe
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24585,1
    - Dst: roaring::api::roaring64_bitmap_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24588,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24600,1
    - Dst: roaring::api::split_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24606,1
    - Dst: roaring::api::create_leaf
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24607,1
    - Dst: art_insert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24608,1
    - Dst: roaring::api::roaring_bitmap_free_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24610,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 24613
      start: 24540
    functionDepth: 2
    functionLinenumber: 24540
    functionLinenumberEnd: 24613
    functionName: roaring::api::roaring64_bitmap_portable_deserialize_safe
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_portable_deserialize_safe
    - roaring::api::roaring64_bitmap_free
    - memcpy
    - roaring::api::create_leaf
    - art_insert
    - ra_get_container_at_index
    - roaring::api::roaring64_bitmap_create
    - roaring::api::split_key
    - roaring::api::roaring_bitmap_free_without_containers
    linkageType: ''
    returnType: roaring64_bitmap_t
    signature: "roaring64_bitmap_t *roaring64_bitmap_portable_deserialize_safe(\n
      \   const char *buf, size_t maxbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_init_iterator
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24617,1
    - Dst: container_iterate64
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24623,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - r
    - iterator
    - ptr
    argTypes:
    - roaring64_bitmap_t*
    - roaring_iterator64
    - void*
    constantsTouched: []
    func_position:
      end: 24630
      start: 24615
    functionDepth: 0
    functionLinenumber: 24615
    functionLinenumberEnd: 24630
    functionName: roaring::api::roaring64_bitmap_iterate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - art_iterator_next
    - container_iterate64
    - art_init_iterator
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_bitmap_iterate(const roaring64_bitmap_t *r,\n                              roaring_iterator64
      iterator, void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_iterator_init_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24635,1
    - Dst: roaring::api::roaring64_iterator_read
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - out
    argTypes:
    - roaring64_bitmap_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 24637
      start: 24632
    functionDepth: 3
    functionLinenumber: 24632
    functionLinenumberEnd: 24637
    functionName: roaring::api::roaring64_bitmap_to_uint64_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_iterator_init_at
    - roaring::api::roaring64_iterator_read
    linkageType: ''
    returnType: void
    signature: "void roaring64_bitmap_to_uint64_array(const roaring64_bitmap_t *r,\n
      \                                     uint64_t *out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24641,1
    - Dst: roaring::api::roaring64_iterator_init_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 24643
      start: 24639
    functionDepth: 3
    functionLinenumber: 24639
    functionLinenumberEnd: 24643
    functionName: roaring::api::roaring64_iterator_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - roaring::api::roaring64_iterator_init_at
    linkageType: ''
    returnType: roaring64_iterator_t
    signature: roaring64_iterator_t *roaring64_iterator_create(const roaring64_bitmap_t
      *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24648,1
    - Dst: roaring::api::roaring64_iterator_init_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring64_bitmap_t*
    constantsTouched: []
    func_position:
      end: 24650
      start: 24645
    functionDepth: 3
    functionLinenumber: 24645
    functionLinenumberEnd: 24650
    functionName: roaring::api::roaring64_iterator_create_last
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - roaring::api::roaring64_iterator_init_at
    linkageType: ''
    returnType: roaring64_iterator_t
    signature: "roaring64_iterator_t *roaring64_iterator_create_last(\n    const roaring64_bitmap_t
      *r)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_iterator_init_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - it
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 24655
      start: 24652
    functionDepth: 3
    functionLinenumber: 24652
    functionLinenumberEnd: 24655
    functionName: roaring::api::roaring64_iterator_reinit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_iterator_init_at
    linkageType: ''
    returnType: void
    signature: "void roaring64_iterator_reinit(const roaring64_bitmap_t *r,\n                               roaring64_iterator_t
      *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_iterator_init_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - it
    argTypes:
    - roaring64_bitmap_t*
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 24660
      start: 24657
    functionDepth: 3
    functionLinenumber: 24657
    functionLinenumberEnd: 24660
    functionName: roaring::api::roaring64_iterator_reinit_last
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_iterator_init_at
    linkageType: ''
    returnType: void
    signature: "void roaring64_iterator_reinit_last(const roaring64_bitmap_t *r,\n
      \                                   roaring64_iterator_t *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24664,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 24667
      start: 24662
    functionDepth: 0
    functionLinenumber: 24662
    functionLinenumberEnd: 24667
    functionName: roaring::api::roaring64_iterator_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_malloc
    - memcpy
    linkageType: ''
    returnType: roaring64_iterator_t
    signature: roaring64_iterator_t *roaring64_iterator_copy(const roaring64_iterator_t
      *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 24669
      start: 24669
    functionDepth: 0
    functionLinenumber: 24669
    functionLinenumberEnd: 24669
    functionName: roaring::api::roaring64_iterator_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void roaring64_iterator_free(roaring64_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 24673
      start: 24671
    functionDepth: 0
    functionLinenumber: 24671
    functionLinenumberEnd: 24673
    functionName: roaring::api::roaring64_iterator_has_value
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool roaring64_iterator_has_value(const roaring64_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 24677
      start: 24675
    functionDepth: 0
    functionLinenumber: 24675
    functionLinenumberEnd: 24677
    functionName: roaring::api::roaring64_iterator_value
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t roaring64_iterator_value(const roaring64_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_iterator_init_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24684,1
    - Dst: container_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24689,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24694,1
    - Dst: roaring::api::roaring64_iterator_init_at_leaf_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24695,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 24699
      start: 24679
    functionDepth: 3
    functionLinenumber: 24679
    functionLinenumberEnd: 24699
    functionName: roaring::api::roaring64_iterator_advance
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::roaring64_iterator_init_at_leaf_first
    - roaring::api::roaring64_iterator_init_at
    - art_iterator_next
    - container_iterator_next
    linkageType: ''
    returnType: bool
    signature: bool roaring64_iterator_advance(roaring64_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring64_iterator_init_at
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24707,1
    - Dst: container_iterator_prev
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24712,1
    - Dst: art_iterator_prev
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24717,1
    - Dst: roaring::api::roaring64_iterator_init_at_leaf_last
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring64_iterator_t*
    constantsTouched: []
    func_position:
      end: 24722
      start: 24701
    functionDepth: 3
    functionLinenumber: 24701
    functionLinenumberEnd: 24722
    functionName: roaring::api::roaring64_iterator_previous
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - container_iterator_prev
    - roaring::api::roaring64_iterator_init_at_leaf_last
    - art_iterator_prev
    - roaring::api::roaring64_iterator_init_at
    linkageType: ''
    returnType: bool
    signature: bool roaring64_iterator_previous(roaring64_iterator_t *it)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: art_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24732,1
    - Dst: roaring::api::combine_key
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24737,1
    - Dst: container_iterator_lower_bound
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24746,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24753,1
    - Dst: roaring::api::roaring64_iterator_init_at_leaf_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - it
    - val
    argTypes:
    - roaring64_iterator_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 24762
      start: 24724
    functionDepth: 2
    functionLinenumber: 24724
    functionLinenumberEnd: 24762
    functionName: roaring::api::roaring64_iterator_move_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - art_iterator_lower_bound
    - container_iterator_lower_bound
    - roaring::api::roaring64_iterator_init_at_leaf_first
    - roaring::api::combine_key
    - art_iterator_next
    linkageType: ''
    returnType: bool
    signature: "bool roaring64_iterator_move_equalorlarger(roaring64_iterator_t *it,\n
      \                                          uint64_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24783,1
    - Dst: art_iterator_next
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24786,1
    - Dst: roaring::api::roaring64_iterator_init_at_leaf_first
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24788,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - it
    - buf
    - count
    argTypes:
    - roaring64_iterator_t*
    - uint64_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 24792
      start: 24764
    functionDepth: 2
    functionLinenumber: 24764
    functionLinenumberEnd: 24792
    functionName: roaring::api::roaring64_iterator_read
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - assert
    - art_iterator_next
    - roaring::api::roaring64_iterator_init_at_leaf_first
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t roaring64_iterator_read(roaring64_iterator_t *it, uint64_t
      *buf,\n                                 uint64_t count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24845,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24861,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24864,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24865,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24866,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24872,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - ra
    - new_capacity
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 24874
      start: 24838
    functionDepth: 0
    functionLinenumber: 24838
    functionLinenumberEnd: 24874
    functionName: roaring::internal::realloc_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - memcpy
    - assert
    - roaring_free
    linkageType: ''
    returnType: bool
    signature: bool realloc_array(roaring_array_t *ra, int32_t new_capacity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_init
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24878,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - new_ra
    - cap
    argTypes:
    - roaring_array_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 24897
      start: 24876
    functionDepth: 0
    functionLinenumber: 24876
    functionLinenumberEnd: 24897
    functionName: roaring::internal::ra_init_with_capacity
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_init
    linkageType: ''
    returnType: bool
    signature: bool ra_init_with_capacity(roaring_array_t *new_ra, uint32_t cap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::realloc_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 24907
      start: 24899
    functionDepth: 0
    functionLinenumber: 24899
    functionLinenumberEnd: 24907
    functionName: roaring::internal::ra_shrink_to_fit
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::realloc_array
    linkageType: ''
    returnType: int
    signature: int ra_shrink_to_fit(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - new_ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 24920
      start: 24909
    functionDepth: 0
    functionLinenumber: 24909
    functionLinenumberEnd: 24920
    functionName: roaring::internal::ra_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ra_init(roaring_array_t *new_ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_clear_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24924,1
    - Dst: roaring::internal::realloc_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24930,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24935,1
    - Dst: roaring::internal::get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24939,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24943,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24945,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24948,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24952,1
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24955,1
    - Dst: roaring::internal::ra_clear_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24957,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - source
    - dest
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - bool
    constantsTouched: []
    func_position:
      end: 24963
      start: 24922
    functionDepth: 0
    functionLinenumber: 24922
    functionLinenumberEnd: 24963
    functionName: roaring::internal::ra_overwrite
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::internal::container_clone
    - roaring::internal::realloc_array
    - roaring::internal::container_free
    - roaring::internal::ra_clear_containers
    - roaring::internal::get_copy_of_container
    - roaring::internal::ra_clear_without_containers
    linkageType: ''
    returnType: bool
    signature: "bool ra_overwrite(const roaring_array_t *source, roaring_array_t *dest,\n
      \                 bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 24969
      start: 24965
    functionDepth: 0
    functionLinenumber: 24965
    functionLinenumberEnd: 24969
    functionName: roaring::internal::ra_clear_containers
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 4
    functionsReached:
    - roaring::internal::container_free
    linkageType: ''
    returnType: void
    signature: void ra_clear_containers(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_clear_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24972,1
    - Dst: roaring::internal::ra_shrink_to_fit
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 24975
      start: 24971
    functionDepth: 0
    functionLinenumber: 24971
    functionLinenumberEnd: 24975
    functionName: roaring::internal::ra_reset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_clear_containers
    - roaring::internal::ra_shrink_to_fit
    linkageType: ''
    returnType: void
    signature: void ra_reset(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 24985
      start: 24977
    functionDepth: 0
    functionLinenumber: 24977
    functionLinenumberEnd: 24985
    functionName: roaring::internal::ra_clear_without_containers
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 3
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void ra_clear_without_containers(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_clear_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24988,1
    - Dst: roaring::internal::ra_clear_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 24990
      start: 24987
    functionDepth: 0
    functionLinenumber: 24987
    functionLinenumberEnd: 24990
    functionName: roaring::internal::ra_clear
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::ra_clear_containers
    - roaring::internal::ra_clear_without_containers
    linkageType: ''
    returnType: void
    signature: void ra_clear(roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:24995,1
    - Dst: roaring::internal::realloc_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ra
    - k
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 25006
      start: 24992
    functionDepth: 0
    functionLinenumber: 24992
    functionLinenumberEnd: 25006
    functionName: roaring::internal::extend_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 7
    functionsReached:
    - roaring::internal::realloc_array
    - assert
    linkageType: ''
    returnType: bool
    signature: bool extend_array(roaring_array_t *ra, int32_t k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ra
    - key
    - c
    - typecode
    argTypes:
    - roaring_array_t*
    - uint16_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 25017
      start: 25008
    functionDepth: 0
    functionLinenumber: 25008
    functionLinenumberEnd: 25017
    functionName: roaring::internal::ra_append
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append(roaring_array_t *ra, uint16_t key, container_t *c,\n
      \              uint8_t typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25021,1
    - Dst: roaring::internal::get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25028,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ra
    - sa
    - index
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 25038
      start: 25019
    functionDepth: 0
    functionLinenumber: 25019
    functionLinenumberEnd: 25038
    functionName: roaring::internal::ra_append_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::container_clone
    - roaring::internal::get_copy_of_container
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append_copy(roaring_array_t *ra, const roaring_array_t *sa,\n
      \                   uint16_t index, bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_append_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - ra
    - sa
    - stopping_key
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 25046
      start: 25040
    functionDepth: 0
    functionLinenumber: 25040
    functionLinenumberEnd: 25046
    functionName: roaring::internal::ra_append_copies_until
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_append_copy
    linkageType: ''
    returnType: void
    signature: "void ra_append_copies_until(roaring_array_t *ra, const roaring_array_t
      *sa,\n                            uint16_t stopping_key, bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25051,1
    - Dst: roaring::internal::get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25056,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - ra
    - sa
    - start_index
    - end_index
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - int32_t
    - int32_t
    - bool
    constantsTouched: []
    func_position:
      end: 25067
      start: 25048
    functionDepth: 0
    functionLinenumber: 25048
    functionLinenumberEnd: 25067
    functionName: roaring::internal::ra_append_copy_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::container_clone
    - roaring::internal::get_copy_of_container
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append_copy_range(roaring_array_t *ra, const roaring_array_t
      *sa,\n                          int32_t start_index, int32_t end_index,\n                          bool
      copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_append_copy_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ra
    - sa
    - before_start
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - uint16_t
    - bool
    constantsTouched: []
    func_position:
      end: 25077
      start: 25069
    functionDepth: 0
    functionLinenumber: 25069
    functionLinenumberEnd: 25077
    functionName: roaring::internal::ra_append_copies_after
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_append_copy_range
    linkageType: ''
    returnType: void
    signature: "void ra_append_copies_after(roaring_array_t *ra, const roaring_array_t
      *sa,\n                            uint16_t before_start, bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25081,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ra
    - sa
    - start_index
    - end_index
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 25091
      start: 25079
    functionDepth: 0
    functionLinenumber: 25079
    functionLinenumberEnd: 25091
    functionName: roaring::internal::ra_append_move_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append_move_range(roaring_array_t *ra, roaring_array_t *sa,\n
      \                         int32_t start_index, int32_t end_index)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25096,1
    - Dst: roaring::internal::get_copy_of_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25102,1
    - Dst: roaring::internal::container_clone
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - ra
    - sa
    - start_index
    - end_index
    - copy_on_write
    argTypes:
    - roaring_array_t*
    - roaring_array_t*
    - int32_t
    - int32_t
    - bool
    constantsTouched: []
    func_position:
      end: 25113
      start: 25093
    functionDepth: 0
    functionLinenumber: 25093
    functionLinenumberEnd: 25113
    functionName: roaring::internal::ra_append_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_clone
    - roaring::internal::get_copy_of_container
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_append_range(roaring_array_t *ra, roaring_array_t *sa,\n                     int32_t
      start_index, int32_t end_index,\n                     bool copy_on_write)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ra
    - x
    - typecode
    argTypes:
    - roaring_array_t*
    - uint16_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 25121
      start: 25115
    functionDepth: 0
    functionLinenumber: 25115
    functionLinenumberEnd: 25121
    functionName: roaring::internal::ra_get_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: container_t
    signature: "container_t *ra_get_container(roaring_array_t *ra, uint16_t x,\n                              uint8_t
      *typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ra
    - x
    - pos
    argTypes:
    - roaring_array_t*
    - uint16_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 25142
      start: 25136
    functionDepth: 0
    functionLinenumber: 25136
    functionLinenumberEnd: 25142
    functionName: roaring::internal::ra_advance_until_freeing
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_free
    linkageType: ''
    returnType: int32_t
    signature: int32_t ra_advance_until_freeing(roaring_array_t *ra, uint16_t x, int32_t
      pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25146,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25148,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25150,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ra
    - i
    - key
    - c
    - typecode
    argTypes:
    - roaring_array_t*
    - int32_t
    - uint16_t
    - container_t*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 25158
      start: 25144
    functionDepth: 0
    functionLinenumber: 25144
    functionLinenumberEnd: 25158
    functionName: roaring::internal::ra_insert_new_key_value_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memmove
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: "void ra_insert_new_key_value_at(roaring_array_t *ra, int32_t i, uint16_t
      key,\n                                container_t *c, uint8_t typecode)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ra
    - new_length
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 25168
      start: 25165
    functionDepth: 0
    functionLinenumber: 25165
    functionLinenumberEnd: 25168
    functionName: roaring::internal::ra_downsize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ra_downsize(roaring_array_t *ra, int32_t new_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25171,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25173,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ra
    - i
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 25178
      start: 25170
    functionDepth: 0
    functionLinenumber: 25170
    functionLinenumberEnd: 25178
    functionName: roaring::internal::ra_remove_at_index
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void ra_remove_at_index(roaring_array_t *ra, int32_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25181,1
    - Dst: roaring::internal::ra_remove_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ra
    - i
    argTypes:
    - roaring_array_t*
    - int32_t
    constantsTouched: []
    func_position:
      end: 25183
      start: 25180
    functionDepth: 0
    functionLinenumber: 25180
    functionLinenumberEnd: 25183
    functionName: roaring::internal::ra_remove_at_index_and_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_remove_at_index
    - roaring::internal::container_free
    linkageType: ''
    returnType: void
    signature: void ra_remove_at_index_and_free(roaring_array_t *ra, int32_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25192,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25193,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25200,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25202,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ra
    - begin
    - end
    - new_begin
    argTypes:
    - roaring_array_t*
    - uint32_t
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 25206
      start: 25190
    functionDepth: 0
    functionLinenumber: 25190
    functionLinenumberEnd: 25206
    functionName: roaring::internal::ra_copy_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: "void ra_copy_range(roaring_array_t *ra, uint32_t begin, uint32_t end,\n
      \                  uint32_t new_begin)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::extend_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25210,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25214,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25215,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ra
    - count
    - distance
    argTypes:
    - roaring_array_t*
    - int32_t
    - int32_t
    constantsTouched: []
    func_position:
      end: 25220
      start: 25208
    functionDepth: 0
    functionLinenumber: 25208
    functionLinenumberEnd: 25220
    functionName: roaring::internal::ra_shift_tail
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memmove
    - roaring::internal::extend_array
    linkageType: ''
    returnType: void
    signature: void ra_shift_tail(roaring_array_t *ra, int32_t count, int32_t distance)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ra
    - ans
    argTypes:
    - roaring_array_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 25230
      start: 25222
    functionDepth: 0
    functionLinenumber: 25222
    functionLinenumberEnd: 25230
    functionName: roaring::internal::ra_to_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ra_to_uint32_array(const roaring_array_t *ra, uint32_t *ans)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_unwrap_shared
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25247,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25250,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25253,1
    - Dst: roaring::internal::run_container_cardinality
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25256,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25256,1
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25264,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25269,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25276,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25279,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25282,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25283,1
    - Dst: roaring::internal::container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25288,1
    - Dst: const_CAST_bitset
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25288,1
    - Dst: roaring::internal::container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25293,1
    - Dst: const_CAST_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25293,1
    - Dst: roaring::internal::container_to_uint32_array
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25298,1
    - Dst: const_CAST_run
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25298,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25309,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25310,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 4
    argNames:
    - ra
    - offset
    - limit
    - ans
    argTypes:
    - roaring_array_t*
    - size_t
    - size_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 25313
      start: 25232
    functionDepth: 0
    functionLinenumber: 25232
    functionLinenumberEnd: 25313
    functionName: roaring::internal::ra_range_uint32_array
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - const_CAST_bitset
    - memset
    - roaring_malloc
    - memcpy
    - roaring_free
    - roaring::internal::container_unwrap_shared
    - roaring::internal::container_to_uint32_array
    - const_CAST_array
    - roaring::internal::run_container_cardinality
    - free
    - const_CAST_run
    linkageType: ''
    returnType: bool
    signature: "bool ra_range_uint32_array(const roaring_array_t *ra, size_t offset,\n
      \                          size_t limit, uint32_t *ans)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 25322
      start: 25315
    functionDepth: 0
    functionLinenumber: 25315
    functionLinenumberEnd: 25322
    functionName: roaring::internal::ra_has_run_container
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::internal::get_container_type
    linkageType: ''
    returnType: bool
    signature: bool ra_has_run_container(const roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::ra_has_run_container
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 25335
      start: 25324
    functionDepth: 0
    functionLinenumber: 25324
    functionLinenumberEnd: 25335
    functionName: roaring::internal::ra_portable_header_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::ra_has_run_container
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ra_portable_header_size(const roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::internal::container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ra
    argTypes:
    - roaring_array_t*
    constantsTouched: []
    func_position:
      end: 25344
      start: 25337
    functionDepth: 0
    functionLinenumber: 25337
    functionLinenumberEnd: 25344
    functionName: roaring::internal::ra_portable_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_size_in_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ra_portable_size_in_bytes(const roaring_array_t *ra)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25353,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25357,1
    - Dst: roaring::internal::get_container_type
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25359,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25364,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25366,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25375,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25377,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25383,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25390,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25396,1
    - Dst: roaring::internal::container_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25400,1
    - Dst: roaring::internal::container_write
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - ra
    - buf
    argTypes:
    - roaring_array_t*
    - char*
    constantsTouched: []
    func_position:
      end: 25407
      start: 25347
    functionDepth: 0
    functionLinenumber: 25347
    functionLinenumberEnd: 25407
    functionName: roaring::internal::ra_portable_serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::internal::container_size_in_bytes
    - memcpy
    - roaring::internal::container_write
    - roaring::internal::get_container_type
    - assert
    - roaring_free
    linkageType: ''
    returnType: size_t
    signature: size_t ra_portable_serialize(const roaring_array_t *ra, char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25420,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25433,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25461,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25481,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 25495
      start: 25416
    functionDepth: 0
    functionLinenumber: 25416
    functionLinenumberEnd: 25495
    functionName: roaring::internal::ra_portable_deserialize_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t ra_portable_deserialize_size(const char *buf, const size_t maxbytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25511,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25528,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25569,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25576,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25587,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25604,1
    - Dst: roaring::internal::bitset_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25609,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25612,1
    - Dst: roaring::internal::bitset_container_read
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25617,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25625,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25630,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25635,1
    - Dst: roaring::internal::run_container_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25641,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25644,1
    - Dst: roaring::internal::run_container_read
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25649,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25658,1
    - Dst: roaring::internal::array_container_create_given_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25664,1
    - Dst: roaring::internal::ra_clear
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25667,1
    - Dst: roaring::internal::array_container_read
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25672,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 113
    argCount: 4
    argNames:
    - answer
    - buf
    - maxbytes
    - readbytes
    argTypes:
    - roaring_array_t*
    - char*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 25678
      start: 25503
    functionDepth: 0
    functionLinenumber: 25503
    functionLinenumberEnd: 25678
    functionName: roaring::internal::ra_portable_deserialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - memcpy
    - roaring::internal::array_container_create_given_capacity
    - roaring::internal::bitset_container_read
    - roaring::internal::run_container_create
    - roaring::internal::bitset_container_create
    - roaring::internal::array_container_read
    - roaring::internal::ra_clear
    - roaring::internal::run_container_read
    linkageType: ''
    returnType: bool
    signature: "bool ra_portable_deserialize(roaring_array_t *answer, const char *buf,\n
      \                            const size_t maxbytes, size_t *readbytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - roaring_pq_element_t*
    - roaring_pq_element_t*
    constantsTouched: []
    func_position:
      end: 25713
      start: 25711
    functionDepth: 0
    functionLinenumber: 25711
    functionLinenumberEnd: 25713
    functionName: roaring::api::compare
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool compare(roaring_pq_element_t *t1, roaring_pq_element_t *t2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::compare
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pq
    - t
    argTypes:
    - roaring_pq_t*
    - roaring_pq_element_t*
    constantsTouched: []
    func_position:
      end: 25726
      start: 25715
    functionDepth: 0
    functionLinenumber: 25715
    functionLinenumberEnd: 25726
    functionName: roaring::api::pq_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::api::compare
    linkageType: ''
    returnType: void
    signature: void pq_add(roaring_pq_t *pq, roaring_pq_element_t *t)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pq
    argTypes:
    - roaring_pq_t*
    constantsTouched: []
    func_position:
      end: 25728
      start: 25728
    functionDepth: 0
    functionLinenumber: 25728
    functionLinenumberEnd: 25728
    functionName: roaring::api::pq_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring_free
    linkageType: ''
    returnType: void
    signature: void pq_free(roaring_pq_t *pq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::compare
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25739,1
    - Dst: roaring::api::compare
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25744,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - pq
    - i
    argTypes:
    - roaring_pq_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 25751
      start: 25730
    functionDepth: 0
    functionLinenumber: 25730
    functionLinenumberEnd: 25751
    functionName: roaring::api::percolate_down
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 2
    functionsReached:
    - roaring::api::compare
    linkageType: ''
    returnType: void
    signature: void percolate_down(roaring_pq_t *pq, uint32_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_malloc
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25756,1
    - Dst: roaring::api::roaring_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25763,1
    - Dst: roaring::api::percolate_down
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - arr
    - length
    argTypes:
    - roaring_bitmap_t**
    - uint32_t
    constantsTouched: []
    func_position:
      end: 25770
      start: 25753
    functionDepth: 0
    functionLinenumber: 25753
    functionLinenumberEnd: 25770
    functionName: roaring::api::create_pq
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::api::percolate_down
    - roaring_malloc
    - roaring::api::roaring_bitmap_portable_size_in_bytes
    linkageType: ''
    returnType: roaring_pq_t
    signature: roaring_pq_t *create_pq(const roaring_bitmap_t **arr, uint32_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::percolate_down
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pq
    argTypes:
    - roaring_pq_t*
    constantsTouched: []
    func_position:
      end: 25781
      start: 25772
    functionDepth: 0
    functionLinenumber: 25772
    functionLinenumberEnd: 25781
    functionName: roaring::api::pq_poll
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - roaring::api::percolate_down
    linkageType: ''
    returnType: roaring_pq_element_t
    signature: roaring_pq_element_t pq_poll(roaring_pq_t *pq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25790,1
    - Dst: roaring::api::roaring_bitmap_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25794,1
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25798,1
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25809,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25811,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25813,1
    - Dst: ra_unshare_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25815,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25817,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25819,1
    - Dst: container_lazy_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25825,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25826,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25828,1
    - Dst: container_lazy_ior
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25831,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25832,1
    - Dst: container_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25834,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25840,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25845,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25846,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25849,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25851,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25854,1
    - Dst: ra_get_container_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25857,1
    - Dst: ra_append
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25859,1
    - Dst: ra_get_key_at_index
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25862,1
    - Dst: ra_append_move_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25866,1
    - Dst: ra_append_move_range
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25869,1
    - Dst: ra_clear_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25872,1
    - Dst: ra_clear_without_containers
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25873,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25874,1
    - Dst: roaring_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25875,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - roaring_bitmap_t*
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 25877
      start: 25784
    functionDepth: 0
    functionLinenumber: 25784
    functionLinenumberEnd: 25877
    functionName: roaring::api::lazy_or_from_lazy_inputs
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 1
    functionsReached:
    - container_free
    - ra_append
    - ra_get_container_at_index
    - ra_unshare_container_at_index
    - ra_get_key_at_index
    - ra_append_move_range
    - roaring::api::roaring_bitmap_free
    - assert
    - ra_clear_without_containers
    - roaring_free
    - roaring::api::roaring_bitmap_create_with_capacity
    - container_lazy_ior
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *lazy_or_from_lazy_inputs(roaring_bitmap_t *x1,\n
      \                                                 roaring_bitmap_t *x2)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25888,1
    - Dst: roaring::api::roaring_bitmap_copy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25891,1
    - Dst: roaring::api::create_pq
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25893,1
    - Dst: roaring::api::pq_poll
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25895,1
    - Dst: roaring::api::pq_poll
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25896,1
    - Dst: roaring::api::lazy_or_from_lazy_inputs
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25900,1
    - Dst: roaring::api::pq_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25907,1
    - Dst: roaring::api::roaring_bitmap_lazy_or_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25909,1
    - Dst: roaring::api::roaring_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25910,1
    - Dst: roaring::api::pq_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25911,1
    - Dst: roaring::api::roaring_bitmap_lazy_or_inplace
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25913,1
    - Dst: roaring::api::roaring_bitmap_portable_size_in_bytes
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25914,1
    - Dst: roaring::api::pq_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25916,1
    - Dst: roaring::api::roaring_bitmap_lazy_or
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25919,1
    - Dst: roaring::api::pq_add
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25924,1
    - Dst: roaring::api::pq_poll
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25927,1
    - Dst: roaring::api::roaring_bitmap_repair_after_lazy
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25929,1
    - Dst: roaring::api::pq_free
      Src: /src/ndpi/src/lib/third_party/src/roaring.c:25930,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - number
    - x
    argTypes:
    - uint32_t
    - roaring_bitmap_t**
    constantsTouched: []
    func_position:
      end: 25932
      start: 25885
    functionDepth: 0
    functionLinenumber: 25885
    functionLinenumberEnd: 25932
    functionName: roaring::api::roaring_bitmap_or_many_heap
    functionSourceFile: /src/ndpi/src/lib/third_party/src/roaring.c
    functionUses: 0
    functionsReached:
    - roaring::api::pq_poll
    - roaring::api::pq_add
    - roaring::api::pq_free
    - roaring::api::roaring_bitmap_copy
    - roaring::api::roaring_bitmap_repair_after_lazy
    - roaring::api::roaring_bitmap_lazy_or
    - roaring::api::create_pq
    - roaring::api::lazy_or_from_lazy_inputs
    - roaring::api::roaring_bitmap_lazy_or_inplace
    - roaring::api::roaring_bitmap_create
    - roaring::api::roaring_bitmap_portable_size_in_bytes
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: "roaring_bitmap_t *roaring_bitmap_or_many_heap(uint32_t number,\n                                              const
      roaring_bitmap_t **x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: flag2delim
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char flag2delim(int flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - haystack
    - haystack_len
    - c0
    - c1
    argTypes:
    - char*
    - size_t
    - char
    - char
    constantsTouched: []
    func_position:
      end: 123
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 123
    functionName: memchr2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      memchr2(const char *haystack, size_t haystack_len, char c0, char c1)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:133,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:134,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:135,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - haystack
    - hlen
    - needle
    - nlen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: my_memmem
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - memcmp
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      my_memmem(const char* haystack, size_t hlen, const char* needle, size_t nlen)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - len
    - accept
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: strlenspn
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: size_t
    signature: size_t strlenspn(const char *s, size_t len, const char *accept)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - len
    - accept
    argTypes:
    - char*
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: strlencspn
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: size_t
    signature: size_t strlencspn(const char *s, size_t len, const char *accept)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 197
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 197
    functionName: char_is_white
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int char_is_white(char ch)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 228
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 228
    functionName: cstrcasecmp
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cstrcasecmp(const char *a, const char *b, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: streq
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int streq(const char *a, const char *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:260,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - key
    - len
    - keywords
    - numb
    argTypes:
    - char*
    - size_t
    - keyword_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 271
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 271
    functionName: bsearch_keyword_type
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - cstrcasecmp
    linkageType: ''
    returnType: char
    signature: "char bsearch_keyword_type(const char *key, size_t len,\n                                 const
      keyword_t * keywords, size_t numb)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bsearch_keyword_type
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: is_keyword
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - bsearch_keyword_type
    linkageType: ''
    returnType: char
    signature: char is_keyword(const char* key, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - stoken_t*
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: st_clear
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void st_clear(stoken_t * st)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - st
    - stype
    - pos
    - len
    - value
    argTypes:
    - stoken_t*
    - char
    - size_t
    - size_t
    - char
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: st_assign_char
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void st_assign_char(stoken_t * st, const char stype, size_t pos, size_t
      len,\n                           const char value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - st
    - stype
    - pos
    - len
    - value
    argTypes:
    - stoken_t*
    - char
    - size_t
    - size_t
    - char*
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: st_assign
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void st_assign(stoken_t * st, const char stype,\n                      size_t
      pos, size_t len, const char* value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - stoken_t*
    - stoken_t*
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: st_copy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void st_copy(stoken_t * dest, const stoken_t * src)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - stoken_t*
    constantsTouched: []
    func_position:
      end: 324
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 324
    functionName: st_is_arithmetic_op
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int st_is_arithmetic_op(const stoken_t* st)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - st
    argTypes:
    - stoken_t*
    constantsTouched: []
    func_position:
      end: 345
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 345
    functionName: st_is_unary_op
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - cstrcasecmp
    linkageType: ''
    returnType: int
    signature: int st_is_unary_op(const stoken_t * st)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: parse_white
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parse_white(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: parse_operator1
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign_char
    linkageType: ''
    returnType: size_t
    signature: size_t parse_operator1(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: parse_other
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign_char
    linkageType: ''
    returnType: size_t
    signature: size_t parse_other(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 382
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 382
    functionName: parse_char
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign_char
    linkageType: ''
    returnType: size_t
    signature: size_t parse_char(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:393,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 399
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 399
    functionName: parse_eol_comment
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign
    linkageType: ''
    returnType: size_t
    signature: size_t parse_eol_comment(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_eol_comment
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:409,1
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: parse_hash
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign_char
    - parse_eol_comment
    linkageType: ''
    returnType: size_t
    signature: size_t parse_hash(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: char_is_white
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:431,1
    - Dst: parse_eol_comment
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:432,1
    - Dst: parse_eol_comment
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:434,1
    - Dst: parse_eol_comment
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:440,1
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 445
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 445
    functionName: parse_dash
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign_char
    - parse_eol_comment
    - char_is_white
    linkageType: ''
    returnType: size_t
    signature: size_t parse_dash(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - cs
    - len
    - pos
    argTypes:
    - char*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 486
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 486
    functionName: is_mysql_comment
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t is_mysql_comment(const char *cs, const size_t len, size_t pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_operator1
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:499,1
    - Dst: memchr2
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:505,1
    - Dst: memchr2
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:525,1
    - Dst: is_mysql_comment
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:528,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:532,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 534
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 534
    functionName: parse_slash
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - memchr2
    - st_assign
    - parse_operator1
    - is_mysql_comment
    linkageType: ''
    returnType: size_t
    signature: size_t parse_slash(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:547,1
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 553
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 553
    functionName: parse_backslash
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign_char
    - st_assign
    linkageType: ''
    returnType: size_t
    signature: size_t parse_backslash(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_operator1
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:563,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:573,1
    - Dst: struct libinjection_sqli_state*::lookup
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:577,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:579,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:590,1
    - Dst: parse_operator1
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:596,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 598
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 598
    functionName: parse_operator2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign
    - parse_operator1
    - struct libinjection_sqli_state*::lookup
    linkageType: ''
    returnType: size_t
    signature: size_t parse_operator2(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - end
    - start
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 626
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 626
    functionName: is_backslash_escaped
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_backslash_escaped(const char* end, const char* start)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - cur
    - end
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 632
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 632
    functionName: is_double_delim_escaped
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t is_double_delim_escaped(const char* cur,  const char* end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:673,1
    - Dst: is_backslash_escaped
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:676,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:679,1
    - Dst: is_double_delim_escaped
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:682,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:685,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:690,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - cs
    - len
    - pos
    - st
    - delim
    - offset
    argTypes:
    - char*
    - size_t
    - size_t
    - stoken_t*
    - char
    - size_t
    constantsTouched: []
    func_position:
      end: 696
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 696
    functionName: parse_string_core
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - is_backslash_escaped
    - st_assign
    - memchr
    - is_double_delim_escaped
    linkageType: ''
    returnType: size_t
    signature: "size_t parse_string_core(const char *cs, const size_t len, size_t
      pos,\n                                stoken_t * st, char delim, size_t offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_string_core
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 711
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 711
    functionName: parse_string
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - parse_string_core
    linkageType: ''
    returnType: size_t
    signature: size_t parse_string(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_word
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:725,1
    - Dst: parse_string_core
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 728
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 728
    functionName: parse_estring
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - parse_string_core
    - parse_word
    linkageType: ''
    returnType: size_t
    signature: size_t parse_estring(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_string
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:738,1
    - Dst: parse_word
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:745,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 747
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 747
    functionName: parse_ustring
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - parse_string
    - parse_word
    linkageType: ''
    returnType: size_t
    signature: size_t parse_ustring(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_word
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:767,1
    - Dst: parse_word
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:776,1
    - Dst: memchr2
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:785,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:787,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:792,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - sf
    - offset
    argTypes:
    - struct libinjection_sqli_state*
    - size_t
    constantsTouched: []
    func_position:
      end: 797
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 797
    functionName: parse_qstring_core
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - memchr2
    - st_assign
    - parse_word
    linkageType: ''
    returnType: size_t
    signature: size_t parse_qstring_core(struct libinjection_sqli_state * sf, size_t
      offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_qstring_core
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 805
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 805
    functionName: parse_qstring
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - parse_qstring_core
    linkageType: ''
    returnType: size_t
    signature: size_t parse_qstring(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_estring
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:816,1
    - Dst: parse_qstring_core
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 819
      start: 811
    functionDepth: 3
    functionLinenumber: 811
    functionLinenumberEnd: 819
    functionName: parse_nqstring
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - parse_estring
    - parse_qstring_core
    linkageType: ''
    returnType: size_t
    signature: size_t parse_nqstring(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_word
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:837,1
    - Dst: strlenspn
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:840,1
    - Dst: parse_word
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:842,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 846
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 846
    functionName: parse_bstring
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign
    - strlenspn
    - parse_word
    linkageType: ''
    returnType: size_t
    signature: size_t parse_bstring(struct libinjection_sqli_state *sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_word
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:866,1
    - Dst: strlenspn
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:869,1
    - Dst: parse_word
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:871,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:873,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 875
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 875
    functionName: parse_xstring
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign
    - strlenspn
    - parse_word
    linkageType: ''
    returnType: size_t
    signature: size_t parse_xstring(struct libinjection_sqli_state *sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:888,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 894
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 894
    functionName: parse_bword
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign
    linkageType: ''
    returnType: size_t
    signature: size_t parse_bword(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:906,1
    - Dst: struct libinjection_sqli_state*::lookup
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:914,1
    - Dst: st_clear
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:917,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:922,1
    - Dst: struct libinjection_sqli_state*::lookup
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:933,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 940
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 940
    functionName: parse_word
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 5
    functionsReached:
    - st_clear
    - st_assign
    - struct libinjection_sqli_state*::lookup
    linkageType: ''
    returnType: size_t
    signature: size_t parse_word(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 970
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 970
    functionName: parse_tick
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t parse_tick(struct libinjection_sqli_state* sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_tick
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1001,1
    - Dst: parse_string
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1006,1
    - Dst: strlencspn
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1013,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1016,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1019,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 1022
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 1022
    functionName: parse_var
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - strlencspn
    - parse_string
    - st_assign
    - parse_tick
    linkageType: ''
    returnType: size_t
    signature: size_t parse_var(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1034,1
    - Dst: strlenspn
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1043,1
    - Dst: memchr2
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1047,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1050,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1055,1
    - Dst: strlenspn
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1063,1
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1066,1
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1073,1
    - Dst: my_memmem
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1078,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1082,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1088,1
    - Dst: parse_word
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1097,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1099,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 1102
      start: 1024
    functionDepth: 2
    functionLinenumber: 1024
    functionLinenumberEnd: 1102
    functionName: parse_money
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - strlenspn
    - memchr2
    - my_memmem
    - parse_word
    - st_assign_char
    - st_assign
    linkageType: ''
    returnType: size_t
    signature: size_t parse_money(struct libinjection_sqli_state *sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlenspn
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1126,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1128,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1131,1
    - Dst: ISDIGIT
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1138,1
    - Dst: ISDIGIT
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1144,1
    - Dst: st_assign_char
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1149,1
    - Dst: ISDIGIT
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1161,1
    - Dst: char_is_white
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1175,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1197,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1199,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 64
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 1202
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1202
    functionName: parse_number
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - ISDIGIT
    - char_is_white
    - strlenspn
    - st_assign_char
    - st_assign
    linkageType: ''
    returnType: size_t
    signature: size_t parse_number(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1212
    functionName: libinjection_version
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * libinjection_version(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_clear
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1226,1
    - Dst: parse_string_core
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1235,1
    - Dst: flag2delim
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 1266
      start: 1214
    functionDepth: 2
    functionLinenumber: 1214
    functionLinenumberEnd: 1266
    functionName: libinjection_sqli_tokenize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_clear
    - parse_string_core
    - flag2delim
    linkageType: ''
    returnType: int
    signature: int libinjection_sqli_tokenize(struct libinjection_sqli_state *sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - sf
    - s
    - len
    - flags
    argTypes:
    - struct libinjection_sqli_state*
    - char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 1281
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1281
    functionName: libinjection_sqli_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void libinjection_sqli_init(struct libinjection_sqli_state * sf, const
      char *s, size_t len, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_sqli_init
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sf
    - flags
    argTypes:
    - struct libinjection_sqli_state*
    - int
    constantsTouched: []
    func_position:
      end: 1294
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1294
    functionName: libinjection_sqli_reset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - libinjection_sqli_init
    linkageType: ''
    returnType: void
    signature: void libinjection_sqli_reset(struct libinjection_sqli_state * sf, int
      flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - sf
    - fn
    - userdata
    argTypes:
    - struct libinjection_sqli_state*
    - ptr_lookup_fn
    - void*
    constantsTouched: []
    func_position:
      end: 1305
      start: 1296
    functionDepth: 0
    functionLinenumber: 1296
    functionLinenumberEnd: 1305
    functionName: libinjection_sqli_callback
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libinjection_sqli_callback(struct libinjection_sqli_state * sf,
      ptr_lookup_fn fn, void* userdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1366,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1368,1
    - Dst: struct libinjection_sqli_state*::lookup
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1370,1
    - Dst: st_assign
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1373,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 24
    argCount: 3
    argNames:
    - sf
    - a
    - b
    argTypes:
    - struct libinjection_sqli_state*
    - stoken_t*
    - stoken_t*
    constantsTouched: []
    func_position:
      end: 1378
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1378
    functionName: syntax_merge_words
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_assign
    - memcpy
    - struct libinjection_sqli_state*::lookup
    linkageType: ''
    returnType: int
    signature: int syntax_merge_words(struct libinjection_sqli_state * sf,stoken_t
      * a, stoken_t * b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: st_clear
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1393,1
    - Dst: libinjection_sqli_tokenize
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1400,1
    - Dst: st_is_unary_op
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1404,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1456,1
    - Dst: libinjection_sqli_tokenize
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1474,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1477,1
    - Dst: st_is_unary_op
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1510,1
    - Dst: st_is_unary_op
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1517,1
    - Dst: syntax_merge_words
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1524,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1547,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1548,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1551,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1552,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1553,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1559,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1560,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1561,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1562,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1563,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1564,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1574,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1575,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1602,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1603,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1618,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1629,1
    - Dst: st_is_arithmetic_op
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1634,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1639,1
    - Dst: libinjection_sqli_tokenize
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1704,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1707,1
    - Dst: streq
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1762,1
    - Dst: st_is_unary_op
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1783,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1788,1
    - Dst: st_is_unary_op
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1795,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1804,1
    - Dst: st_is_unary_op
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1809,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1819,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1822,1
    - Dst: st_is_unary_op
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1826,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1835,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1845,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1853,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1867,1
    - Dst: st_copy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1886,1
    CyclomaticComplexity: 208
    EdgeCount: 208
    ICount: 259
    argCount: 1
    argNames:
    - sf
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 1898
      start: 1380
    functionDepth: 3
    functionLinenumber: 1380
    functionLinenumberEnd: 1898
    functionName: libinjection_sqli_fold
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - st_copy
    - cstrcasecmp
    - syntax_merge_words
    - st_clear
    - streq
    - st_is_arithmetic_op
    - libinjection_sqli_tokenize
    - assert
    - st_is_unary_op
    - strchr
    linkageType: ''
    returnType: int
    signature: int libinjection_sqli_fold(struct libinjection_sqli_state * sf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_sqli_reset
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1915,1
    - Dst: libinjection_sqli_fold
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1917,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1953,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1955,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - sql_state
    - flags
    argTypes:
    - struct libinjection_sqli_state*
    - int
    constantsTouched: []
    func_position:
      end: 1967
      start: 1910
    functionDepth: 4
    functionLinenumber: 1910
    functionLinenumberEnd: 1967
    functionName: libinjection_sqli_fingerprint
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - libinjection_sqli_reset
    - libinjection_sqli_fold
    - strchr
    - memset
    linkageType: ''
    returnType: char
    signature: char * libinjection_sqli_fingerprint(struct libinjection_sqli_state
      * sql_state, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_sqli_blacklist
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1971,1
    - Dst: libinjection_sqli_not_whitelist
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sql_state
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 1973
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 1973
    functionName: libinjection_sqli_check_fingerprint
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - libinjection_sqli_not_whitelist
    - libinjection_sqli_blacklist
    linkageType: ''
    returnType: int
    signature: int libinjection_sqli_check_fingerprint(struct libinjection_sqli_state*
      sql_state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_sqli_check_fingerprint
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1979,1
    - Dst: bsearch_keyword_type
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:1981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - sql_state
    - lookup_type
    - str
    - len
    argTypes:
    - struct libinjection_sqli_state*
    - int
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1983
      start: 1975
    functionDepth: 2
    functionLinenumber: 1975
    functionLinenumberEnd: 1983
    functionName: libinjection_sqli_lookup_word
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - libinjection_sqli_check_fingerprint
    - bsearch_keyword_type
    linkageType: ''
    returnType: char
    signature: "char libinjection_sqli_lookup_word(struct libinjection_sqli_state
      *sql_state, int lookup_type,\n                                   const char*
      str, size_t len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_keyword
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2019,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - sql_state
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 2033
      start: 1985
    functionDepth: 3
    functionLinenumber: 1985
    functionLinenumberEnd: 2033
    functionName: libinjection_sqli_blacklist
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 1
    functionsReached:
    - is_keyword
    linkageType: ''
    returnType: int
    signature: int libinjection_sqli_blacklist(struct libinjection_sqli_state* sql_state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: my_memmem
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2056,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2057,1
    - Dst: streq
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2176,1
    - Dst: streq
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2177,1
    - Dst: streq
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2198,1
    - Dst: streq
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2199,1
    - Dst: streq
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2200,1
    - Dst: streq
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2201,1
    - Dst: streq
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2202,1
    - Dst: cstrcasecmp
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2212,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 86
    argCount: 1
    argNames:
    - sql_state
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 2230
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2230
    functionName: libinjection_sqli_not_whitelist
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 1
    functionsReached:
    - my_memmem
    - streq
    - cstrcasecmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int libinjection_sqli_not_whitelist(struct libinjection_sqli_state*
      sql_state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sql_state
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 2240
      start: 2236
    functionDepth: 0
    functionLinenumber: 2236
    functionLinenumberEnd: 2240
    functionName: reparse_as_mysql
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int reparse_as_mysql(struct libinjection_sqli_state * sql_state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - sql_state
    - i
    argTypes:
    - struct libinjection_sqli_state*
    - int
    constantsTouched: []
    func_position:
      end: 2252
      start: 2245
    functionDepth: 0
    functionLinenumber: 2245
    functionLinenumberEnd: 2252
    functionName: libinjection_sqli_get_token
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct libinjection_sqli_token
    signature: 'struct libinjection_sqli_token *

      libinjection_sqli_get_token(struct libinjection_sqli_state * sql_state, int
      i)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_sqli_fingerprint
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2269,1
    - Dst: struct libinjection_sqli_state*::lookup
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2270,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2271,1
    - Dst: reparse_as_mysql
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2273,1
    - Dst: libinjection_sqli_fingerprint
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2274,1
    - Dst: struct libinjection_sqli_state*::lookup
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2275,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2276,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2290,1
    - Dst: libinjection_sqli_fingerprint
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2291,1
    - Dst: struct libinjection_sqli_state*::lookup
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2292,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2293,1
    - Dst: reparse_as_mysql
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2295,1
    - Dst: libinjection_sqli_fingerprint
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2296,1
    - Dst: struct libinjection_sqli_state*::lookup
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2297,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2298,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2307,1
    - Dst: libinjection_sqli_fingerprint
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2308,1
    - Dst: struct libinjection_sqli_state*::lookup
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2309,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - sql_state
    argTypes:
    - struct libinjection_sqli_state*
    constantsTouched: []
    func_position:
      end: 2319
      start: 2254
    functionDepth: 5
    functionLinenumber: 2254
    functionLinenumberEnd: 2319
    functionName: libinjection_is_sqli
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 1
    functionsReached:
    - reparse_as_mysql
    - struct libinjection_sqli_state*::lookup
    - memchr
    - libinjection_sqli_fingerprint
    - strlen
    linkageType: ''
    returnType: int
    signature: int libinjection_is_sqli(struct libinjection_sqli_state * sql_state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_sqli_init
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2326,1
    - Dst: libinjection_is_sqli
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2327,1
    - Dst: strcpy
      Src: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c:2329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - s
    - slen
    - fingerprint
    argTypes:
    - char*
    - size_t
    - char[]
    constantsTouched: []
    func_position:
      end: 2334
      start: 2321
    functionDepth: 6
    functionLinenumber: 2321
    functionLinenumberEnd: 2334
    functionName: libinjection_sqli
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
    functionUses: 0
    functionsReached:
    - libinjection_sqli_init
    - strcpy
    - libinjection_is_sqli
    linkageType: ''
    returnType: int
    signature: int libinjection_sqli(const char* s, size_t slen, char fingerprint[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:50,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: copy_double_arr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached:
    - ndpi_malloc
    linkageType: ''
    returnType: double
    signature: double **copy_double_arr(double **arr, int row, int col)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arr
    - i1
    - i2
    argTypes:
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: swap
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(int *arr, int i1, int i2)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - t_btree*
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: btree_zero
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void btree_zero(t_btree *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmax
      Src: /src/ndpi/src/lib/third_party/src/ball.c:105,1
    - Dst: manhattan_dist
      Src: /src/ndpi/src/lib/third_party/src/ball.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - b
    - i_node
    - idx_start
    - idx_end
    argTypes:
    - t_btree*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 111
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 111
    functionName: init_node
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached:
    - fmax
    - manhattan_dist
    linkageType: ''
    returnType: int
    signature: int init_node(t_btree *b, int i_node, int idx_start, int idx_end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmax
      Src: /src/ndpi/src/lib/third_party/src/ball.c:127,1
    - Dst: fmin
      Src: /src/ndpi/src/lib/third_party/src/ball.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - data
    - node_indices
    - n_features
    - n_points
    argTypes:
    - double**
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 138
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 138
    functionName: find_node_split_dim
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached:
    - fmax
    - fmin
    linkageType: ''
    returnType: int
    signature: int find_node_split_dim(double **data, int *node_indices, int n_features,
      int n_points)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:159,1
    - Dst: swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - data
    - node_indices
    - split_dim
    - split_index
    - n_features
    - n_points
    argTypes:
    - double**
    - int*
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 172
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 172
    functionName: partition_node_indices
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: int
    signature: "int partition_node_indices(double **data, int *node_indices, int split_dim,
      int split_index,\n           int n_features, int n_points)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_node
      Src: /src/ndpi/src/lib/third_party/src/ball.c:186,1
    - Dst: find_node_split_dim
      Src: /src/ndpi/src/lib/third_party/src/ball.c:204,1
    - Dst: partition_node_indices
      Src: /src/ndpi/src/lib/third_party/src/ball.c:205,1
    - Dst: recursive_build
      Src: /src/ndpi/src/lib/third_party/src/ball.c:206,1
    - Dst: recursive_build
      Src: /src/ndpi/src/lib/third_party/src/ball.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - b
    - i_node
    - idx_start
    - idx_end
    argTypes:
    - t_btree*
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 209
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 209
    functionName: recursive_build
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached:
    - find_node_split_dim
    - init_node
    - recursive_build
    - partition_node_indices
    linkageType: ''
    returnType: void
    signature: void recursive_build(t_btree *b, int i_node, int idx_start, int idx_end)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:216,1
    - Dst: btree_zero
      Src: /src/ndpi/src/lib/third_party/src/ball.c:217,1
    - Dst: copy_double_arr
      Src: /src/ndpi/src/lib/third_party/src/ball.c:219,1
    - Dst: log2
      Src: /src/ndpi/src/lib/third_party/src/ball.c:231,1
    - Dst: fmax
      Src: /src/ndpi/src/lib/third_party/src/ball.c:231,1
    - Dst: pow
      Src: /src/ndpi/src/lib/third_party/src/ball.c:232,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:234,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:237,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:238,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:239,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:242,1
    - Dst: recursive_build
      Src: /src/ndpi/src/lib/third_party/src/ball.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - data
    - n_samples
    - n_features
    - leaf_size
    argTypes:
    - double**
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 248
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 248
    functionName: btree_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached:
    - log2
    - ndpi_malloc
    - btree_zero
    - ndpi_calloc
    - copy_double_arr
    - pow
    - fmax
    - recursive_build
    linkageType: ''
    returnType: t_btree
    signature: t_btree *btree_init(double **data, int n_samples, int n_features, int
      leaf_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nheap_largest
      Src: /src/ndpi/src/lib/third_party/src/ball.c:257,1
    - Dst: manhattan_dist
      Src: /src/ndpi/src/lib/third_party/src/ball.c:266,1
    - Dst: nheap_largest
      Src: /src/ndpi/src/lib/third_party/src/ball.c:267,1
    - Dst: nheap_push
      Src: /src/ndpi/src/lib/third_party/src/ball.c:268,1
    - Dst: min_dist
      Src: /src/ndpi/src/lib/third_party/src/ball.c:276,1
    - Dst: min_dist
      Src: /src/ndpi/src/lib/third_party/src/ball.c:277,1
    - Dst: query_depth_first
      Src: /src/ndpi/src/lib/third_party/src/ball.c:280,1
    - Dst: query_depth_first
      Src: /src/ndpi/src/lib/third_party/src/ball.c:281,1
    - Dst: query_depth_first
      Src: /src/ndpi/src/lib/third_party/src/ball.c:285,1
    - Dst: query_depth_first
      Src: /src/ndpi/src/lib/third_party/src/ball.c:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 6
    argNames:
    - b
    - i_node
    - pt
    - i_pt
    - heap
    - dist
    argTypes:
    - t_btree*
    - int
    - double*
    - int
    - t_nheap*
    - double
    constantsTouched: []
    func_position:
      end: 290
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 290
    functionName: query_depth_first
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached:
    - min_dist
    - manhattan_dist
    - nheap_largest
    - nheap_push
    - query_depth_first
    linkageType: ''
    returnType: int
    signature: int query_depth_first(t_btree *b, int i_node, double *pt, int i_pt,
      t_nheap *heap, double dist)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ball.c:299,1
    - Dst: nheap_init
      Src: /src/ndpi/src/lib/third_party/src/ball.c:311,1
    - Dst: min_dist
      Src: /src/ndpi/src/lib/third_party/src/ball.c:314,1
    - Dst: query_depth_first
      Src: /src/ndpi/src/lib/third_party/src/ball.c:315,1
    - Dst: nheap_get_arrays
      Src: /src/ndpi/src/lib/third_party/src/ball.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - b
    - x
    - n_samples
    - n_features
    - k
    argTypes:
    - t_btree*
    - double**
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 319
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 319
    functionName: btree_query
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached:
    - nheap_get_arrays
    - memset
    - min_dist
    - nheap_init
    - query_depth_first
    linkageType: ''
    returnType: ndpi_knn
    signature: ndpi_knn btree_query(t_btree *b, double **x, int n_samples, int n_features,
      int k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ball.c:326,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ball.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - arr
    - row
    argTypes:
    - double**
    - int
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: free_2d_double
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void free_2d_double(double **arr, int row)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ball.c:335,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ball.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - arr
    - row
    argTypes:
    - int**
    - int
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: free_2d_int
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void free_2d_int(int **arr, int row)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_2d_double
      Src: /src/ndpi/src/lib/third_party/src/ball.c:341,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ball.c:342,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ball.c:343,1
    - Dst: free_2d_double
      Src: /src/ndpi/src/lib/third_party/src/ball.c:344,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ball.c:345,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ball.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tree
    argTypes:
    - t_btree*
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: free_tree
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached:
    - free_2d_double
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void free_tree(t_btree *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_2d_double
      Src: /src/ndpi/src/lib/third_party/src/ball.c:351,1
    - Dst: free_2d_int
      Src: /src/ndpi/src/lib/third_party/src/ball.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - knn
    - row
    argTypes:
    - ndpi_knn
    - int
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: free_knn
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached:
    - free_2d_int
    - free_2d_double
    linkageType: ''
    returnType: void
    signature: void free_knn(ndpi_knn knn, int row)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/ndpi/src/lib/third_party/src/ball.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - x1
    - x2
    - size
    argTypes:
    - double*
    - double*
    - int
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: manhattan_dist
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 2
    functionsReached:
    - fabs
    linkageType: ''
    returnType: double
    signature: double manhattan_dist(double *x1, double *x2, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: manhattan_dist
      Src: /src/ndpi/src/lib/third_party/src/ball.c:383,1
    - Dst: fmax
      Src: /src/ndpi/src/lib/third_party/src/ball.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tree
    - i_node
    - pt
    argTypes:
    - t_btree*
    - int
    - double*
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: min_dist
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 2
    functionsReached:
    - fmax
    - manhattan_dist
    linkageType: ''
    returnType: double
    signature: double min_dist(t_btree *tree, int i_node, double *pt)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - darr
    - iarr
    - i1
    - i2
    argTypes:
    - double*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 412
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 412
    functionName: dual_swap
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dual_swap(double *darr, int *iarr, int i1, int i2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:419,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:422,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:425,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:429,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/ball.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - n_pts
    - n_nbrs
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 433
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 433
    functionName: nheap_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached:
    - ndpi_calloc
    - ndpi_malloc
    linkageType: ''
    returnType: t_nheap
    signature: t_nheap *nheap_init(int n_pts, int n_nbrs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - row
    argTypes:
    - t_nheap*
    - int
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: nheap_largest
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double nheap_largest(t_nheap *h, int row)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - h
    - row
    - val
    - i_val
    argTypes:
    - t_nheap*
    - int
    - double
    - int
    constantsTouched: []
    func_position:
      end: 498
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 498
    functionName: nheap_push
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nheap_push(t_nheap *h, int row, double val, int i_val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dual_swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:510,1
    - Dst: dual_swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:515,1
    - Dst: dual_swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:518,1
    - Dst: dual_swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:520,1
    - Dst: dual_swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:527,1
    - Dst: dual_swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:530,1
    - Dst: dual_swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:532,1
    - Dst: dual_swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:541,1
    - Dst: dual_swap
      Src: /src/ndpi/src/lib/third_party/src/ball.c:545,1
    - Dst: simultaneous_sort
      Src: /src/ndpi/src/lib/third_party/src/ball.c:548,1
    - Dst: simultaneous_sort
      Src: /src/ndpi/src/lib/third_party/src/ball.c:550,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - dist
    - idx
    - size
    argTypes:
    - double*
    - int*
    - int
    constantsTouched: []
    func_position:
      end: 552
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 552
    functionName: simultaneous_sort
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached:
    - dual_swap
    - simultaneous_sort
    linkageType: ''
    returnType: void
    signature: void simultaneous_sort(double *dist, int *idx, int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: simultaneous_sort
      Src: /src/ndpi/src/lib/third_party/src/ball.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - t_nheap*
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: nheap_sort
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 0
    functionsReached:
    - simultaneous_sort
    linkageType: ''
    returnType: void
    signature: void nheap_sort(t_nheap *h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: nheap_sort
      Src: /src/ndpi/src/lib/third_party/src/ball.c:566,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/ball.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - h
    argTypes:
    - t_nheap*
    constantsTouched: []
    func_position:
      end: 573
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 573
    functionName: nheap_get_arrays
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ball.c
    functionUses: 1
    functionsReached:
    - nheap_sort
    - ndpi_free
    linkageType: ''
    returnType: ndpi_knn
    signature: ndpi_knn nheap_get_arrays(t_nheap *h)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - key
    - length
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: jenkins_one_at_a_time_hash
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libcache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t jenkins_one_at_a_time_hash(const uint8_t* key, size_t length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - cache
    - entry
    argTypes:
    - cache_t
    - cache_entry
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: cache_touch_entry
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libcache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cache_touch_entry(cache_t cache, cache_entry entry)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: cache_entry_new
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libcache.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    linkageType: ''
    returnType: cache_entry
    signature: cache_entry cache_entry_new(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: cache_entry_map_new
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libcache.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    linkageType: ''
    returnType: cache_entry_map
    signature: cache_entry_map cache_entry_map_new(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:104,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:112,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - cache_max_size
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 120
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 120
    functionName: cache_new
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libcache.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - ndpi_free
    linkageType: ''
    returnType: cache_t
    signature: cache_t cache_new(uint32_t cache_max_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FUNCTION
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:131,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:138,1
    - Dst: cache_touch_entry
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:146,1
    - Dst: cache_entry_new
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:151,1
    - Dst: cache_entry_map_new
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:156,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:158,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:162,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:164,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:165,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:168,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:194,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:215,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:216,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:217,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 3
    argNames:
    - cache
    - item
    - item_size
    argTypes:
    - cache_t
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 222
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 222
    functionName: cache_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libcache.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_free
    - memcmp
    - ndpi_malloc
    - cache_entry_new
    - HASH_FUNCTION
    - cache_entry_map_new
    - cache_touch_entry
    linkageType: ''
    returnType: cache_result
    signature: cache_result cache_add(cache_t cache, void *item, uint32_t item_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FUNCTION
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:231,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:237,1
    - Dst: cache_touch_entry
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - cache
    - item
    - item_size
    argTypes:
    - cache_t
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 248
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 248
    functionName: cache_contains
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libcache.c
    functionUses: 0
    functionsReached:
    - HASH_FUNCTION
    - cache_touch_entry
    - memcmp
    linkageType: ''
    returnType: cache_result
    signature: cache_result cache_contains(cache_t cache, void *item, uint32_t item_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FUNCTION
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:257,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:264,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:294,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:295,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:296,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - cache
    - item
    - item_size
    argTypes:
    - cache_t
    - void*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 304
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 304
    functionName: cache_remove
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libcache.c
    functionUses: 0
    functionsReached:
    - HASH_FUNCTION
    - memcmp
    - ndpi_free
    linkageType: ''
    returnType: cache_result
    signature: cache_result cache_remove(cache_t cache, void *item, uint32_t item_size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:318,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:319,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:320,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:324,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/libcache.c:325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - cache
    argTypes:
    - cache_t
    constantsTouched: []
    func_position:
      end: 328
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 328
    functionName: cache_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libcache.c
    functionUses: 1
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void cache_free(cache_t cache)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:123,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:139,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:139,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:139,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:139,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:140,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:140,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:140,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:140,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:141,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:141,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:141,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:141,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:142,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:142,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:142,1
    - Dst: R0
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:142,1
    - Dst: R1
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:143,1
    - Dst: R1
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:143,1
    - Dst: R1
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:143,1
    - Dst: R1
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:143,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:144,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:144,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:144,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:144,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:145,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:145,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:145,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:145,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:146,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:146,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:146,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:146,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:147,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:147,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:147,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:147,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:148,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:148,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:148,1
    - Dst: R2
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:148,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:149,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:149,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:149,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:149,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:150,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:150,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:150,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:150,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:151,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:151,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:151,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:151,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:152,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:152,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:152,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:152,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:153,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:153,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:153,1
    - Dst: R3
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:153,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:154,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:154,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:154,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:154,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:155,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:155,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:155,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:155,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:156,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:156,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:156,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:156,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:157,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:157,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:157,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:157,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:158,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:158,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:158,1
    - Dst: R4
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:158,1
    - Dst: secure_memzero
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 94
    argCount: 2
    argNames:
    - state
    - buffer
    argTypes:
    - u_int32_t[]
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 170
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 170
    functionName: SHA1Transform
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c
    functionUses: 0
    functionsReached:
    - R3
    - R4
    - memcpy
    - R0
    - R2
    - secure_memzero
    - R1
    linkageType: ''
    returnType: void
    signature: void SHA1Transform(u_int32_t state[5], const unsigned char buffer[64])
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - SHA1_CTX*
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: SHA1Init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1Init(SHA1_CTX* context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:200,1
    - Dst: SHA1Transform
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:201,1
    - Dst: SHA1Transform
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:203,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - context
    - data
    - len
    argTypes:
    - SHA1_CTX*
    - unsigned char*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 209
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 209
    functionName: SHA1Update
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c
    functionUses: 1
    functionsReached:
    - SHA1Transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA1Update(SHA1_CTX* context, const unsigned char* data, u_int32_t
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Update
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:243,1
    - Dst: SHA1Update
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:246,1
    - Dst: SHA1Update
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:248,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:254,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - digest
    - context
    argTypes:
    - unsigned char[]
    - SHA1_CTX*
    constantsTouched: []
    func_position:
      end: 256
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 256
    functionName: SHA1Final
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c
    functionUses: 1
    functionsReached:
    - SHA1Update
    - memset
    linkageType: ''
    returnType: void
    signature: void SHA1Final(unsigned char digest[20], SHA1_CTX* context)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Init
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:272,1
    - Dst: SHA1Update
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:274,1
    - Dst: SHA1Final
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:275,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:277,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:279,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: main
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c
    functionUses: 6
    functionsReached:
    - SHA1Update
    - SHA1Final
    - SHA1Init
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: is_big_endian
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_big_endian(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_big_endian
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - longs
    argTypes:
    - unsigned char*
    - unsigned
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: byte_reverse
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_md5.c
    functionUses: 0
    functionsReached:
    - is_big_endian
    linkageType: ''
    returnType: void
    signature: void byte_reverse(unsigned char *buf, unsigned longs)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ndpi_MD5_CTX*
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: ndpi_MD5Init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_md5.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_MD5Init(ndpi_MD5_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:62,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:63,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:64,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:65,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:66,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:67,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:68,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:69,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:70,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:71,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:72,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:73,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:74,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:75,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:76,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:77,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:79,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:80,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:81,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:82,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:83,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:84,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:85,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:86,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:87,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:88,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:89,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:90,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:91,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:92,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:93,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:94,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:96,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:97,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:98,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:99,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:100,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:101,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:102,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:103,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:104,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:105,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:106,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:107,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:108,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:109,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:110,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:111,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:113,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:114,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:115,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:116,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:117,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:118,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:119,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:120,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:121,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:122,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:123,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:124,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:125,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:126,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:127,1
    - Dst: MD5STEP
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 73
    argCount: 2
    argNames:
    - buf
    - in
    argTypes:
    - u_int32_t[]
    - u_int32_t[]
    constantsTouched: []
    func_position:
      end: 134
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 134
    functionName: MD5Transform
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_md5.c
    functionUses: 0
    functionsReached:
    - MD5STEP
    linkageType: ''
    returnType: void
    signature: void MD5Transform(u_int32_t buf[4], u_int32_t const in[16])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:153,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:156,1
    - Dst: byte_reverse
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:157,1
    - Dst: MD5Transform
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:158,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:164,1
    - Dst: byte_reverse
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:165,1
    - Dst: MD5Transform
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:166,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - ndpi_MD5_CTX*
    - unsigned char*
    - unsigned
    constantsTouched: []
    func_position:
      end: 172
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 172
    functionName: ndpi_MD5Update
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_md5.c
    functionUses: 1
    functionsReached:
    - MD5Transform
    - byte_reverse
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ndpi_MD5Update(ndpi_MD5_CTX *ctx, unsigned char const *buf, unsigned
      len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:187,1
    - Dst: byte_reverse
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:188,1
    - Dst: MD5Transform
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:189,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:190,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:192,1
    - Dst: byte_reverse
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:194,1
    - Dst: MD5Transform
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:199,1
    - Dst: byte_reverse
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:200,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:201,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/ndpi_md5.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - digest
    - ctx
    argTypes:
    - unsigned char[]
    - ndpi_MD5_CTX*
    constantsTouched: []
    func_position:
      end: 203
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 203
    functionName: ndpi_MD5Final
    functionSourceFile: /src/ndpi/src/lib/third_party/src/ndpi_md5.c
    functionUses: 1
    functionsReached:
    - MD5Transform
    - memset
    - byte_reverse
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ndpi_MD5Final(unsigned char digest[16], ndpi_MD5_CTX *ctx)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isspace
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:133,1
    - Dst: ndpi_isspace
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:134,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:157,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:162,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:170,1
    - Dst: strptime
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:171,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:176,1
    - Dst: strptime
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:177,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:182,1
    - Dst: strptime
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:183,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:188,1
    - Dst: strptime
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:189,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:194,1
    - Dst: strptime
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:195,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:200,1
    - Dst: strptime
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:201,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:206,1
    - Dst: strptime
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:207,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:216,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:219,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:220,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:224,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:225,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:240,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:243,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:244,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:248,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:249,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:262,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:263,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:277,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:278,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:283,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:286,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:287,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:292,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:295,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:296,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:303,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:304,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:310,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:311,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:316,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:317,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:323,1
    - Dst: strcasecmp
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:325,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:329,1
    - Dst: strcasecmp
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:333,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:338,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:346,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:347,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:353,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:360,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:365,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:366,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:371,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:372,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:379,1
    - Dst: conv_num
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:380,1
    - Dst: LEGAL_ALT
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:399,1
    - Dst: ndpi_isspace
      Src: /src/ndpi/src/lib/third_party/src/strptime.c:400,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 212
    argCount: 3
    argNames:
    - buf
    - fmt
    - tm
    argTypes:
    - char*
    - char*
    - struct tm*
    constantsTouched: []
    func_position:
      end: 414
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 414
    functionName: strptime
    functionSourceFile: /src/ndpi/src/lib/third_party/src/strptime.c
    functionUses: 1
    functionsReached:
    - strcasecmp
    - strptime
    - strncasecmp
    - LEGAL_ALT
    - ndpi_isspace
    - conv_num
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      strptime(const char* buf, const char* fmt, struct tm* tm)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 4
    argNames:
    - buf
    - dest
    - llim
    - ulim
    argTypes:
    - char**
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 438
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 438
    functionName: conv_num
    functionSourceFile: /src/ndpi/src/lib/third_party/src/strptime.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int conv_num(const char** buf, int* dest, int llim, int ulim)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 137
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 137
    functionName: kd_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - ndpi_malloc
    linkageType: ''
    returnType: struct kdtree
    signature: struct kdtree *kd_create(int k)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_clear
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:142,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tree
    argTypes:
    - struct kdtree*
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: kd_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - kd_clear
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void kd_free(struct kdtree *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_rec
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:151,1
    - Dst: clear_rec
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:152,1
    - Dst: destr
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:155,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:157,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct kdnode*
    constantsTouched: []
    func_position:
      end: 159
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 159
    functionName: clear_rec
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - clear_rec
    - destr
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void clear_rec(struct kdnode *node, void (*destr)(void*))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_rec
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:166,1
    - Dst: hyperrect_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tree
    argTypes:
    - struct kdtree*
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: kd_clear
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 2
    functionsReached:
    - clear_rec
    - hyperrect_free
    linkageType: ''
    returnType: void
    signature: void kd_clear(struct kdtree *tree)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree
    argTypes:
    - struct kdtree*
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: kd_data_destructor
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kd_data_destructor(struct kdtree *tree, void (*destr)(void*))
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:187,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:190,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:191,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:194,1
    - Dst: insert_rec
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:205,1
    - Dst: insert_rec
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - nptr
    - pos
    - data
    - dir
    - dim
    argTypes:
    - struct kdnode**
    - double*
    - void*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 208
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 208
    functionName: insert_rec
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - memcpy
    - insert_rec
    - ndpi_malloc
    - ndpi_free
    linkageType: ''
    returnType: int
    signature: int insert_rec(struct kdnode **nptr, const double *pos, void *data,
      int dir, int dim)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert_rec
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:215,1
    - Dst: hyperrect_create
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:220,1
    - Dst: hyperrect_extend
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tree
    - pos
    - data
    argTypes:
    - struct kdtree*
    - double*
    - void*
    constantsTouched: []
    func_position:
      end: 226
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 226
    functionName: kd_insert
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - hyperrect_extend
    - hyperrect_create
    - insert_rec
    linkageType: ''
    returnType: int
    signature: int kd_insert(struct kdtree *tree, const double *pos, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQ
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:237,1
    - Dst: SQ
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:239,1
    - Dst: rlist_insert
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:240,1
    - Dst: find_nearest
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:248,1
    - Dst: fabs
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:249,1
    - Dst: find_nearest
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - node
    - pos
    - range
    - list
    - ordered
    - dim
    argTypes:
    - struct kdnode*
    - double*
    - double
    - struct res_node*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 259
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 259
    functionName: find_nearest
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - rlist_insert
    - find_nearest
    - SQ
    - fabs
    linkageType: ''
    returnType: int
    signature: int find_nearest(struct kdnode *node, const double *pos, double range,
      struct res_node *list, int ordered, int dim)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQ
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:272,1
    - Dst: rheap_get_max
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:277,1
    - Dst: rheap_remove_max
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:281,1
    - Dst: rheap_insert
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:283,1
    - Dst: rheap_insert
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:291,1
    - Dst: find_nearest_n
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:302,1
    - Dst: fabs
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:303,1
    - Dst: find_nearest_n
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:305,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 6
    argNames:
    - node
    - pos
    - range
    - num
    - heap
    - dim
    argTypes:
    - struct kdnode*
    - double*
    - double
    - int
    - struct rheap*
    - int
    constantsTouched: []
    func_position:
      end: 308
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 308
    functionName: find_nearest_n
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - find_nearest_n
    - SQ
    - fabs
    - rheap_insert
    - rheap_get_max
    - rheap_remove_max
    linkageType: ''
    returnType: int
    signature: int find_nearest_n(struct kdnode *node, const double *pos, double range,
      int num, struct rheap *heap, int dim)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_nearest_i
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:338,1
    - Dst: SQ
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:347,1
    - Dst: hyperrect_dist_sq
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:361,1
    - Dst: kd_nearest_i
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 5
    argNames:
    - node
    - pos
    - result
    - result_dist_sq
    - rect
    argTypes:
    - struct kdnode*
    - double*
    - struct kdnode**
    - double*
    - struct kdhyperrect*
    constantsTouched: []
    func_position:
      end: 368
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 368
    functionName: kd_nearest_i
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - hyperrect_dist_sq
    - SQ
    - kd_nearest_i
    linkageType: ''
    returnType: void
    signature: void kd_nearest_i(struct kdnode *node, const double *pos, struct kdnode
      **result, double *result_dist_sq, struct kdhyperrect* rect)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:382,1
    - Dst: alloc_resnode
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:385,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:386,1
    - Dst: hyperrect_duplicate
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:393,1
    - Dst: kd_res_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:394,1
    - Dst: SQ
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:402,1
    - Dst: kd_nearest_i
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:405,1
    - Dst: hyperrect_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:408,1
    - Dst: rlist_insert
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:412,1
    - Dst: kd_res_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:413,1
    - Dst: kd_res_rewind
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:417,1
    - Dst: kd_res_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:420,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - kd
    - pos
    argTypes:
    - struct kdtree*
    - double*
    constantsTouched: []
    func_position:
      end: 423
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 423
    functionName: kd_nearest
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - hyperrect_free
    - kd_res_free
    - ndpi_free
    - ndpi_malloc
    - hyperrect_duplicate
    - SQ
    - kd_nearest_i
    - kd_res_rewind
    - alloc_resnode
    - rlist_insert
    linkageType: ''
    returnType: struct kdres
    signature: struct kdres *kd_nearest(struct kdtree *kd, const double *pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:456,1
    - Dst: alloc_resnode
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:459,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:460,1
    - Dst: find_nearest
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:466,1
    - Dst: kd_res_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:467,1
    - Dst: kd_res_rewind
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - kd
    - pos
    - range
    argTypes:
    - struct kdtree*
    - double*
    - double
    constantsTouched: []
    func_position:
      end: 473
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 473
    functionName: kd_nearest_range
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 0
    functionsReached:
    - kd_res_free
    - ndpi_free
    - ndpi_malloc
    - find_nearest
    - kd_res_rewind
    - alloc_resnode
    linkageType: ''
    returnType: struct kdres
    signature: struct kdres *kd_nearest_range(struct kdtree *kd, const double *pos,
      double range)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear_results
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:477,1
    - Dst: free_resnode
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:478,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rset
    argTypes:
    - struct kdres*
    constantsTouched: []
    func_position:
      end: 480
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 480
    functionName: kd_res_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 3
    functionsReached:
    - clear_results
    - free_resnode
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void kd_res_free(struct kdres *rset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct kdres*
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: kd_res_size
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kd_res_size(struct kdres *set)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rset
    argTypes:
    - struct kdres*
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: kd_res_rewind
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kd_res_rewind(struct kdres *rset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rset
    argTypes:
    - struct kdres*
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: kd_res_end
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kd_res_end(struct kdres *rset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rset
    argTypes:
    - struct kdres*
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: kd_res_next
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kd_res_next(struct kdres *rset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rset
    - user_data
    argTypes:
    - struct kdres*
    - double**
    constantsTouched: []
    func_position:
      end: 513
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 513
    functionName: kd_res_item
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double *kd_res_item(struct kdres *rset, double **user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kd_res_item
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct kdres*
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: kd_res_item_data
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 0
    functionsReached:
    - kd_res_item
    linkageType: ''
    returnType: void
    signature: void *kd_res_item_data(struct kdres *set)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:526,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:531,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:532,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:535,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:536,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:537,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:540,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - dim
    - min
    - max
    argTypes:
    - int
    - double*
    - double*
    constantsTouched: []
    func_position:
      end: 544
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 544
    functionName: hyperrect_create
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - memcpy
    - ndpi_malloc
    - ndpi_free
    linkageType: ''
    returnType: struct kdhyperrect
    signature: struct kdhyperrect * hyperrect_create(int dim, const double *min, const
      double *max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:548,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:549,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rect
    argTypes:
    - struct kdhyperrect*
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: hyperrect_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 2
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void hyperrect_free(struct kdhyperrect *rect)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hyperrect_create
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rect
    argTypes:
    - struct kdhyperrect*
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: hyperrect_duplicate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - hyperrect_create
    linkageType: ''
    returnType: struct kdhyperrect
    signature: struct kdhyperrect * hyperrect_duplicate(const struct kdhyperrect *rect)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - rect
    - pos
    argTypes:
    - struct kdhyperrect*
    - double*
    constantsTouched: []
    func_position:
      end: 570
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 570
    functionName: hyperrect_extend
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hyperrect_extend(struct kdhyperrect *rect, const double *pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SQ
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:579,1
    - Dst: SQ
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - rect
    - pos
    argTypes:
    - struct kdhyperrect*
    - double*
    constantsTouched: []
    func_position:
      end: 586
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 586
    functionName: hyperrect_dist_sq
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - SQ
    linkageType: ''
    returnType: double
    signature: double hyperrect_dist_sq(struct kdhyperrect *rect, const double *pos)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:603,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:607,1
    - Dst: pthread_mutex_unlock
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 619
    functionName: alloc_resnode
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - ndpi_malloc
    - pthread_mutex_lock
    linkageType: ''
    returnType: struct res_node
    signature: struct res_node *alloc_resnode(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:624,1
    - Dst: pthread_mutex_unlock
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct res_node*
    constantsTouched: []
    func_position:
      end: 633
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 633
    functionName: free_resnode
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void free_resnode(struct res_node *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: alloc_resnode
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - list
    - item
    - dist_sq
    argTypes:
    - struct res_node*
    - struct kdnode*
    - double
    constantsTouched: []
    func_position:
      end: 657
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 657
    functionName: rlist_insert
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 2
    functionsReached:
    - alloc_resnode
    linkageType: ''
    returnType: int
    signature: int rlist_insert(struct res_node *list, struct kdnode *item, double
      dist_sq)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_resnode
      Src: /src/ndpi/src/lib/third_party/src/kdtree.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rset
    argTypes:
    - struct kdres*
    constantsTouched: []
    func_position:
      end: 670
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 670
    functionName: clear_results
    functionSourceFile: /src/ndpi/src/lib/third_party/src/kdtree.c
    functionUses: 1
    functionsReached:
    - free_resnode
    linkageType: ''
    returnType: void
    signature: void clear_results(struct kdres *rset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 3
    argNames:
    - src
    - len
    - consumed
    argTypes:
    - char*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 140
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 140
    functionName: html_decode_char_at
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_xss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int html_decode_char_at(const char* src, size_t len, size_t* consumed)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 244
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 244
    functionName: cstrcasecmp_with_null
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_xss.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cstrcasecmp_with_null(const char *a, const char *b, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: html_decode_char_at
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:266,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - char*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 301
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 301
    functionName: htmlencode_startswith
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_xss.c
    functionUses: 0
    functionsReached:
    - html_decode_char_at
    linkageType: ''
    returnType: int
    signature: int htmlencode_startswith(const char *a, const char *b, size_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cstrcasecmp_with_null
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:313,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 18
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 337
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 337
    functionName: is_black_tag
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_xss.c
    functionUses: 0
    functionsReached:
    - cstrcasecmp_with_null
    linkageType: ''
    returnType: int
    signature: int is_black_tag(const char* s, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cstrcasecmp_with_null
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:357,1
    - Dst: cstrcasecmp_with_null
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:357,1
    - Dst: cstrcasecmp_with_null
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:365,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 373
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 373
    functionName: is_black_attr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_xss.c
    functionUses: 0
    functionsReached:
    - cstrcasecmp_with_null
    linkageType: ''
    returnType: attribute_t
    signature: attribute_t is_black_attr(const char* s, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htmlencode_startswith
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:400,1
    - Dst: htmlencode_startswith
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:404,1
    - Dst: htmlencode_startswith
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:408,1
    - Dst: htmlencode_startswith
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 416
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 416
    functionName: is_black_url
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_xss.c
    functionUses: 0
    functionsReached:
    - htmlencode_startswith
    linkageType: ''
    returnType: int
    signature: int is_black_url(const char* s, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_h5_init
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:423,1
    - Dst: libinjection_h5_next
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:424,1
    - Dst: is_black_tag
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:432,1
    - Dst: is_black_attr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:436,1
    - Dst: is_black_url
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:459,1
    - Dst: is_black_attr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:467,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:479,1
    - Dst: cstrcasecmp_with_null
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:499,1
    - Dst: cstrcasecmp_with_null
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:504,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 61
    argCount: 3
    argNames:
    - s
    - len
    - flags
    argTypes:
    - char*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 511
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 511
    functionName: libinjection_is_xss
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_xss.c
    functionUses: 0
    functionsReached:
    - is_black_url
    - libinjection_h5_next
    - cstrcasecmp_with_null
    - memchr
    - is_black_tag
    - libinjection_h5_init
    - is_black_attr
    linkageType: ''
    returnType: int
    signature: int libinjection_is_xss(const char* s, size_t len, int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_is_xss
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:528,1
    - Dst: libinjection_is_xss
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:531,1
    - Dst: libinjection_is_xss
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:534,1
    - Dst: libinjection_is_xss
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:537,1
    - Dst: libinjection_is_xss
      Src: /src/ndpi/src/lib/third_party/src/libinjection_xss.c:540,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - s
    - slen
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 545
      start: 526
    functionDepth: 4
    functionLinenumber: 526
    functionLinenumberEnd: 545
    functionName: libinjection_xss
    functionSourceFile: /src/ndpi/src/lib/third_party/src/libinjection_xss.c
    functionUses: 1
    functionsReached:
    - libinjection_is_xss
    linkageType: ''
    returnType: int
    signature: int libinjection_xss(const char* s, size_t slen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: decode_header
    functionSourceFile: /src/ndpi/src/lib/third_party/src/shoco.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int decode_header(unsigned char val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:57,1
    - Dst: _mm_load_si128
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:58,1
    - Dst: _mm_load_si128
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:59,1
    - Dst: _mm_cmpgt_epi16
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:60,1
    - Dst: _mm_cmpgt_epi16
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:61,1
    - Dst: _mm_and_si128
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - shoco_restrict
    - pack_n
    argTypes:
    - int16_t*
    - int
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: check_indices
    functionSourceFile: /src/ndpi/src/lib/third_party/src/shoco.c
    functionUses: 0
    functionsReached:
    - _mm_setzero_si128
    - _mm_load_si128
    - _mm_cmpgt_epi16
    - _mm_and_si128
    linkageType: ''
    returnType: int
    signature: int check_indices(const int16_t * shoco_restrict indices, int pack_n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - shoco_restrict
    - pack_n
    argTypes:
    - int16_t*
    - int
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: check_indices
    functionSourceFile: /src/ndpi/src/lib/third_party/src/shoco.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_indices(const int16_t * shoco_restrict indices, int pack_n)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_indices
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - shoco_restrict
    - n_consecutive
    argTypes:
    - int16_t*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: find_best_encoding
    functionSourceFile: /src/ndpi/src/lib/third_party/src/shoco.c
    functionUses: 0
    functionsReached:
    - check_indices
    linkageType: ''
    returnType: int
    signature: int find_best_encoding(const int16_t * shoco_restrict indices, unsigned
      int n_consecutive)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find_best_encoding
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:129,1
    - Dst: swap
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:143,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 52
    argCount: 4
    argNames:
    - shoco_restrict
    - strlen
    - shoco_restrict
    - bufsize
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 170
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 170
    functionName: shoco_compress
    functionSourceFile: /src/ndpi/src/lib/third_party/src/shoco.c
    functionUses: 0
    functionsReached:
    - find_best_encoding
    - swap
    linkageType: ''
    returnType: size_t
    signature: size_t shoco_compress(const char * const shoco_restrict original, size_t
      strlen, char * const shoco_restrict out, size_t bufsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decode_header
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:184,1
    - Dst: swap
      Src: /src/ndpi/src/lib/third_party/src/shoco.c:209,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - shoco_restrict
    - complen
    - shoco_restrict
    - bufsize
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 233
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 233
    functionName: shoco_decompress
    functionSourceFile: /src/ndpi/src/lib/third_party/src/shoco.c
    functionUses: 1
    functionsReached:
    - decode_header
    - swap
    linkageType: ''
    returnType: size_t
    signature: size_t shoco_decompress(const char * const shoco_restrict original,
      size_t complen, char * const shoco_restrict out, size_t bufsize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSBoxValue
      Src: /src/ndpi/src/lib/third_party/src/aes.c:218,1
    - Dst: getSBoxValue
      Src: /src/ndpi/src/lib/third_party/src/aes.c:219,1
    - Dst: getSBoxValue
      Src: /src/ndpi/src/lib/third_party/src/aes.c:220,1
    - Dst: getSBoxValue
      Src: /src/ndpi/src/lib/third_party/src/aes.c:221,1
    - Dst: getSBoxValue
      Src: /src/ndpi/src/lib/third_party/src/aes.c:231,1
    - Dst: getSBoxValue
      Src: /src/ndpi/src/lib/third_party/src/aes.c:232,1
    - Dst: getSBoxValue
      Src: /src/ndpi/src/lib/third_party/src/aes.c:233,1
    - Dst: getSBoxValue
      Src: /src/ndpi/src/lib/third_party/src/aes.c:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 2
    argNames:
    - RoundKey
    - Key
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 244
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 244
    functionName: KeyExpansion
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - getSBoxValue
    linkageType: ''
    returnType: void
    signature: void KeyExpansion(uint8_t* RoundKey, const uint8_t* Key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExpansion
      Src: /src/ndpi/src/lib/third_party/src/aes.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - struct AES_ctx*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: AES_init_ctx
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - KeyExpansion
    linkageType: ''
    returnType: void
    signature: void AES_init_ctx(struct AES_ctx* ctx, const uint8_t* key)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: KeyExpansion
      Src: /src/ndpi/src/lib/third_party/src/aes.c:253,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/aes.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - key
    - iv
    argTypes:
    - struct AES_ctx*
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: AES_init_ctx_iv
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 2
    functionsReached:
    - memcpy
    - KeyExpansion
    linkageType: ''
    returnType: void
    signature: void AES_init_ctx_iv(struct AES_ctx* ctx, const uint8_t* key, const
      uint8_t* iv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/aes.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - iv
    argTypes:
    - struct AES_ctx*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: AES_ctx_set_iv
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void AES_ctx_set_iv(struct AES_ctx* ctx, const uint8_t* iv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - round
    - state
    - RoundKey
    argTypes:
    - uint8_t
    - state_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: AddRoundKey
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AddRoundKey(uint8_t round, state_t* state, const uint8_t* RoundKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSBoxValue
      Src: /src/ndpi/src/lib/third_party/src/aes.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - state_t*
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: SubBytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - getSBoxValue
    linkageType: ''
    returnType: void
    signature: void SubBytes(state_t* state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - state_t*
    constantsTouched: []
    func_position:
      end: 319
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 319
    functionName: ShiftRows
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ShiftRows(state_t* state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: xtime
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t xtime(uint8_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:335,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:336,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:337,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - state_t*
    constantsTouched: []
    func_position:
      end: 340
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 340
    functionName: MixColumns
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - xtime
    linkageType: ''
    returnType: void
    signature: void MixColumns(state_t* state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:350,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:351,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:351,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:352,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:352,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:352,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:353,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:353,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:353,1
    - Dst: xtime
      Src: /src/ndpi/src/lib/third_party/src/aes.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 354
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 354
    functionName: Multiply
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - xtime
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Multiply(uint8_t x, uint8_t y)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:388,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:388,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:388,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:388,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:389,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:389,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:389,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:389,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:390,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:390,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:390,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:390,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:391,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:391,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:391,1
    - Dst: Multiply
      Src: /src/ndpi/src/lib/third_party/src/aes.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - state
    argTypes:
    - state_t*
    constantsTouched: []
    func_position:
      end: 393
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 393
    functionName: InvMixColumns
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - Multiply
    linkageType: ''
    returnType: void
    signature: void InvMixColumns(state_t* state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getSBoxInvert
      Src: /src/ndpi/src/lib/third_party/src/aes.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - state_t*
    constantsTouched: []
    func_position:
      end: 408
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 408
    functionName: InvSubBytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - getSBoxInvert
    linkageType: ''
    returnType: void
    signature: void InvSubBytes(state_t* state)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - state_t*
    constantsTouched: []
    func_position:
      end: 436
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 436
    functionName: InvShiftRows
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InvShiftRows(state_t* state)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddRoundKey
      Src: /src/ndpi/src/lib/third_party/src/aes.c:445,1
    - Dst: SubBytes
      Src: /src/ndpi/src/lib/third_party/src/aes.c:453,1
    - Dst: ShiftRows
      Src: /src/ndpi/src/lib/third_party/src/aes.c:454,1
    - Dst: MixColumns
      Src: /src/ndpi/src/lib/third_party/src/aes.c:458,1
    - Dst: AddRoundKey
      Src: /src/ndpi/src/lib/third_party/src/aes.c:459,1
    - Dst: AddRoundKey
      Src: /src/ndpi/src/lib/third_party/src/aes.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - state
    - RoundKey
    argTypes:
    - state_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 463
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 463
    functionName: Cipher
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - ShiftRows
    - AddRoundKey
    - MixColumns
    - SubBytes
    linkageType: ''
    returnType: void
    signature: void Cipher(state_t* state, const uint8_t* RoundKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AddRoundKey
      Src: /src/ndpi/src/lib/third_party/src/aes.c:471,1
    - Dst: InvShiftRows
      Src: /src/ndpi/src/lib/third_party/src/aes.c:479,1
    - Dst: InvSubBytes
      Src: /src/ndpi/src/lib/third_party/src/aes.c:480,1
    - Dst: AddRoundKey
      Src: /src/ndpi/src/lib/third_party/src/aes.c:481,1
    - Dst: InvMixColumns
      Src: /src/ndpi/src/lib/third_party/src/aes.c:485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - state
    - RoundKey
    argTypes:
    - state_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 488
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 488
    functionName: InvCipher
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - InvShiftRows
    - InvSubBytes
    - InvMixColumns
    - AddRoundKey
    linkageType: ''
    returnType: void
    signature: void InvCipher(state_t* state, const uint8_t* RoundKey)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cipher
      Src: /src/ndpi/src/lib/third_party/src/aes.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - struct AES_ctx*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: AES_ECB_encrypt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - Cipher
    linkageType: ''
    returnType: void
    signature: void AES_ECB_encrypt(const struct AES_ctx* ctx, uint8_t* buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InvCipher
      Src: /src/ndpi/src/lib/third_party/src/aes.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - struct AES_ctx*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 4
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: AES_ECB_decrypt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - InvCipher
    linkageType: ''
    returnType: void
    signature: void AES_ECB_decrypt(const struct AES_ctx* ctx, uint8_t* buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - Iv
    argTypes:
    - uint8_t*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: XorWithIv
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XorWithIv(uint8_t* buf, const uint8_t* Iv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: XorWithIv
      Src: /src/ndpi/src/lib/third_party/src/aes.c:534,1
    - Dst: Cipher
      Src: /src/ndpi/src/lib/third_party/src/aes.c:535,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/aes.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - buf
    - length
    argTypes:
    - struct AES_ctx*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 541
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 541
    functionName: AES_CBC_encrypt_buffer
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 1
    functionsReached:
    - Cipher
    - memcpy
    - XorWithIv
    linkageType: ''
    returnType: void
    signature: void AES_CBC_encrypt_buffer(struct AES_ctx *ctx, uint8_t* buf, size_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/aes.c:549,1
    - Dst: InvCipher
      Src: /src/ndpi/src/lib/third_party/src/aes.c:550,1
    - Dst: XorWithIv
      Src: /src/ndpi/src/lib/third_party/src/aes.c:551,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/aes.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - buf
    - length
    argTypes:
    - struct AES_ctx*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 556
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 556
    functionName: AES_CBC_decrypt_buffer
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 1
    functionsReached:
    - InvCipher
    - memcpy
    - XorWithIv
    linkageType: ''
    returnType: void
    signature: void AES_CBC_decrypt_buffer(struct AES_ctx* ctx, uint8_t* buf, size_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/aes.c:576,1
    - Dst: Cipher
      Src: /src/ndpi/src/lib/third_party/src/aes.c:577,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - buf
    - length
    argTypes:
    - struct AES_ctx*
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 596
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 596
    functionName: AES_CTR_xcrypt_buffer
    functionSourceFile: /src/ndpi/src/lib/third_party/src/aes.c
    functionUses: 0
    functionsReached:
    - Cipher
    - memcpy
    linkageType: ''
    returnType: void
    signature: void AES_CTR_xcrypt_buffer(struct AES_ctx* ctx, uint8_t* buf, size_t
      length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 1
    argNames:
    - err
    argTypes:
    - gcry_error_t
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: gcry_errstr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *gcry_errstr(gcry_error_t err)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - err
    - buf
    - buflen
    argTypes:
    - gcry_error_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: gpg_strerror_r
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *gpg_strerror_r(gcry_error_t err,char *buf, size_t buflen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ctl
    - val
    argTypes:
    - int
    - int
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: gcry_control
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gcry_control (int ctl,int val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: gcry_check_version
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *gcry_check_version(void *unused)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - h
    - algo
    - flags
    argTypes:
    - gcry_md_hd_t*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: gcry_md_open
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - ndpi_calloc
    linkageType: ''
    returnType: gcry_error_t
    signature: gcry_error_t gcry_md_open(gcry_md_hd_t *h,int algo,int flags)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - gcry_md_hd_t
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: gcry_md_close
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void gcry_md_close(gcry_md_hd_t h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - gcry_md_hd_t
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: gcry_md_reset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void gcry_md_reset(gcry_md_hd_t h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - h
    - key
    - key_len
    argTypes:
    - gcry_md_hd_t
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: gcry_md_setkey
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: gcry_error_t
    signature: gcry_error_t gcry_md_setkey(gcry_md_hd_t h,const uint8_t *key,size_t
      key_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - h
    - data
    - data_len
    argTypes:
    - gcry_md_hd_t
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: gcry_md_write
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: gcry_error_t
    signature: gcry_error_t gcry_md_write(gcry_md_hd_t h,const uint8_t *data,size_t
      data_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: gcry_md_get_algo_dlen
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t gcry_md_get_algo_dlen(int algo)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - gcry_md_hd_t
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: gcry_md_get_algo
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gcry_md_get_algo(gcry_md_hd_t h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hmac_sha256
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - h
    - flag
    argTypes:
    - gcry_md_hd_t
    - int
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: gcry_md_read
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - hmac_sha256
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *gcry_md_read(gcry_md_hd_t h, int flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - gcry_cipher_hd_t
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: check_valid_algo_mode
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_valid_algo_mode(gcry_cipher_hd_t h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:183,1
    - Dst: mbedtls_aes_init
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:186,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:193,1
    - Dst: mbedtls_gcm_init
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:196,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - handle
    - algo
    - mode
    - flags
    argTypes:
    - gcry_cipher_hd_t*
    - int
    - int
    - unsigned int
    constantsTouched: []
    func_position:
      end: 206
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 206
    functionName: gcry_cipher_open
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 2
    functionsReached:
    - ndpi_calloc
    - mbedtls_gcm_init
    - mbedtls_aes_init
    linkageType: ''
    returnType: gcry_error_t
    signature: "gcry_error_t gcry_cipher_open (gcry_cipher_hd_t *handle,\n                  int
      algo, int mode, unsigned int flags)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_algo_mode
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:209,1
    - Dst: mbedtls_aes_free
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:212,1
    - Dst: mbedtls_gcm_free
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:215,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - h
    argTypes:
    - gcry_cipher_hd_t
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: gcry_cipher_close
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 2
    functionsReached:
    - mbedtls_aes_free
    - check_valid_algo_mode
    - mbedtls_gcm_free
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void gcry_cipher_close (gcry_cipher_hd_t h)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - h
    - cmd
    - data
    - len
    argTypes:
    - gcry_cipher_hd_t
    - int
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: gcry_cipher_ctl
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gcry_error_t
    signature: gcry_error_t gcry_cipher_ctl (gcry_cipher_hd_t h, int cmd, void *data,
      size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_algo_mode
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:229,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:232,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:233,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:234,1
    - Dst: mbedtls_cipher_reset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - h
    argTypes:
    - gcry_cipher_hd_t
    constantsTouched: []
    func_position:
      end: 245
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 245
    functionName: gcry_cipher_reset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - memset
    - check_valid_algo_mode
    - mbedtls_cipher_reset
    linkageType: ''
    returnType: gcry_error_t
    signature: gcry_error_t gcry_cipher_reset (gcry_cipher_hd_t h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_algo_mode
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:250,1
    - Dst: gcry_cipher_get_algo_keylen
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:252,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:255,1
    - Dst: mbedtls_gcm_setkey
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - h
    - key
    - keylen
    argTypes:
    - gcry_cipher_hd_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: gcry_cipher_setkey
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 2
    functionsReached:
    - mbedtls_gcm_setkey
    - check_valid_algo_mode
    - mbedtls_aes_setkey_enc
    - gcry_cipher_get_algo_keylen
    linkageType: ''
    returnType: gcry_error_t
    signature: gcry_error_t gcry_cipher_setkey (gcry_cipher_hd_t h, const void *key,
      size_t keylen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_algo_mode
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:269,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - h
    - iv
    - ivlen
    argTypes:
    - gcry_cipher_hd_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: gcry_cipher_setiv
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - check_valid_algo_mode
    - memcpy
    linkageType: ''
    returnType: gcry_error_t
    signature: gcry_error_t gcry_cipher_setiv (gcry_cipher_hd_t h, const void *iv,
      size_t ivlen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_algo_mode
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:283,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - h
    - abuf
    - abuflen
    argTypes:
    - gcry_cipher_hd_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 295
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 295
    functionName: gcry_cipher_authenticate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - check_valid_algo_mode
    - memcpy
    linkageType: ''
    returnType: gcry_error_t
    signature: gcry_error_t gcry_cipher_authenticate (gcry_cipher_hd_t h, const void
      *abuf, size_t abuflen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_algo_mode
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - h
    - intag
    - taglen
    argTypes:
    - gcry_cipher_hd_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 312
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 312
    functionName: gcry_cipher_checktag
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - check_valid_algo_mode
    linkageType: ''
    returnType: gcry_error_t
    signature: gcry_error_t gcry_cipher_checktag (gcry_cipher_hd_t h, const void *intag,
      size_t taglen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - algo
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: gcry_cipher_get_algo_keylen
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t gcry_cipher_get_algo_keylen (int algo)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_valid_algo_mode
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:329,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:332,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:335,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:343,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:348,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:352,1
    - Dst: mbedtls_gcm_crypt_and_tag
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:356,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:367,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 6
    argNames:
    - h
    - out
    - outsize
    - in
    - inlen
    - encrypt
    argTypes:
    - gcry_cipher_hd_t
    - void*
    - size_t
    - void*
    - size_t
    - int
    constantsTouched: []
    func_position:
      end: 369
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 369
    functionName: _gcry_cipher_crypt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 0
    functionsReached:
    - mbedtls_aes_crypt_ecb
    - memcpy
    - ndpi_free
    - mbedtls_gcm_crypt_and_tag
    - ndpi_malloc
    - check_valid_algo_mode
    linkageType: ''
    returnType: gcry_error_t
    signature: "gcry_error_t _gcry_cipher_crypt (gcry_cipher_hd_t h,\n                     void
      *out, size_t outsize,\n                     const void *in, size_t inlen,int
      encrypt)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _gcry_cipher_crypt
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - h
    - out
    - outsize
    - in
    - inlen
    argTypes:
    - gcry_cipher_hd_t
    - void*
    - size_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: gcry_cipher_encrypt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - _gcry_cipher_crypt
    linkageType: ''
    returnType: gcry_error_t
    signature: "gcry_error_t gcry_cipher_encrypt (gcry_cipher_hd_t h,\n                     void
      *out, size_t outsize,\n                     const void *in, size_t inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _gcry_cipher_crypt
      Src: /src/ndpi/src/lib/third_party/src/gcrypt_light.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - h
    - out
    - outsize
    - in
    - inlen
    argTypes:
    - gcry_cipher_hd_t
    - void*
    - size_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: gcry_cipher_decrypt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
    functionUses: 1
    functionsReached:
    - _gcry_cipher_crypt
    linkageType: ''
    returnType: gcry_error_t
    signature: "gcry_error_t gcry_cipher_decrypt (gcry_cipher_hd_t h,\n                     void
      *out, size_t outsize,\n                     const void *in, size_t inlen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:62,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:63,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:64,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:65,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:66,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:67,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:68,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:69,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:70,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:71,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:72,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:73,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:74,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:75,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:76,1
    - Dst: ROUND0a
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:77,1
    - Dst: ROUND0b
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:78,1
    - Dst: ROUND0b
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:79,1
    - Dst: ROUND0b
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:80,1
    - Dst: ROUND0b
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:81,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:82,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:83,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:84,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:85,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:86,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:87,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:88,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:89,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:90,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:91,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:92,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:93,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:94,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:95,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:96,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:97,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:98,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:99,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:100,1
    - Dst: ROUND1
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:101,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:102,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:103,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:104,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:105,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:106,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:107,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:108,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:109,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:110,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:111,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:112,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:113,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:114,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:115,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:116,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:117,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:118,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:119,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:120,1
    - Dst: ROUND2
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:121,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:122,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:123,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:124,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:125,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:126,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:127,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:128,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:129,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:130,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:131,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:132,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:133,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:134,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:135,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:136,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:137,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:138,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:139,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:140,1
    - Dst: ROUND3
      Src: /src/ndpi/src/lib/third_party/src/sha1-fast.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 85
    argCount: 2
    argNames:
    - state
    - block
    argTypes:
    - uint32_t[]
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 148
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 148
    functionName: sha1_compress
    functionSourceFile: /src/ndpi/src/lib/third_party/src/sha1-fast.c
    functionUses: 0
    functionsReached:
    - ROUND3
    - ROUND0a
    - ROUND1
    - ROUND0b
    - ROUND2
    linkageType: ''
    returnType: void
    signature: void sha1_compress(uint32_t state[5], const uint8_t block[64])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/ndpi/src/lib/third_party/src/windows/gettimeofday.c:30,1
    - Dst: _tzset
      Src: /src/ndpi/src/lib/third_party/src/windows/gettimeofday.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - tv
    - tz
    argTypes:
    - struct timeval*
    - struct timezone*
    constantsTouched: []
    func_position:
      end: 55
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 55
    functionName: gettimeofday
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/gettimeofday.c
    functionUses: 4
    functionsReached:
    - GetSystemTimeAsFileTime
    - _tzset
    linkageType: ''
    returnType: int
    signature: int gettimeofday(struct timeval *tv, struct timezone *tz)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - argv
    - d
    argTypes:
    - char**
    - struct _getopt_data_a*
    constantsTouched: []
    func_position:
      end: 110
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 110
    functionName: exchange_a
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exchange_a(char **argv, struct _getopt_data_a *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - optstring
    - d
    - posixly_correct
    argTypes:
    - char*
    - struct _getopt_data_a*
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: _getopt_initialize_a
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char *_getopt_initialize_a (const char *optstring, struct _getopt_data_a
      *d, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_initialize_a
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:142,1
    - Dst: exchange_a
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:158,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:165,1
    - Dst: exchange_a
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:169,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:190,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:207,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:209,1
    - Dst: alloca
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:223,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:237,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:240,1
    - Dst: fputc
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:244,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:246,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:265,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:269,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:272,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:285,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:287,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:292,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:302,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:308,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:312,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:330,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:355,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:368,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:370,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:389,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:391,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:406,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:408,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:420,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:422,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:428,1
    - Dst: fprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:466,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 259
    argCount: 8
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - longind
    - long_only
    - d
    - posixly_correct
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    - int
    - struct _getopt_data_a*
    - int
    constantsTouched: []
    func_position:
      end: 481
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 481
    functionName: _getopt_internal_r_a
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - strncmp
    - exchange_a
    - alloca
    - fprintf
    - fputc
    - strcmp
    - _getopt_initialize_a
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int _getopt_internal_r_a (int argc, char *const *argv, const char *optstring,
      const struct option_a *longopts, int *longind, int long_only, struct _getopt_data_a
      *d, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_a
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - longind
    - long_only
    - posixly_correct
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 492
    functionName: _getopt_internal_a
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_a
    linkageType: ''
    returnType: int
    signature: int _getopt_internal_a (int argc, char *const *argv, const char *optstring,
      const struct option_a *longopts, int *longind, int long_only, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_a
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - argc
    - argv
    - optstring
    argTypes:
    - int
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: getopt_a
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_a
    linkageType: ''
    returnType: int
    signature: int getopt_a (int argc, char *const *argv, const char *optstring)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_a
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: getopt_long_a
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_a
    linkageType: ''
    returnType: int
    signature: int getopt_long_a (int argc, char *const *argv, const char *options,
      const struct option_a *long_options, int *opt_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_a
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: getopt_long_only_a
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_a
    linkageType: ''
    returnType: int
    signature: int getopt_long_only_a (int argc, char *const *argv, const char *options,
      const struct option_a *long_options, int *opt_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_a
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    - d
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    - struct _getopt_data_a*
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: _getopt_long_r_a
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_a
    linkageType: ''
    returnType: int
    signature: int _getopt_long_r_a (int argc, char *const *argv, const char *options,
      const struct option_a *long_options, int *opt_index, struct _getopt_data_a *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_a
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    - d
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    - struct _getopt_data_a*
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: _getopt_long_only_r_a
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_a
    linkageType: ''
    returnType: int
    signature: int _getopt_long_only_r_a (int argc, char *const *argv, const char
      *options, const struct option_a *long_options, int *opt_index, struct _getopt_data_a
      *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - argv
    - d
    argTypes:
    - wchar_t**
    - struct _getopt_data_w*
    constantsTouched: []
    func_position:
      end: 570
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 570
    functionName: exchange_w
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exchange_w(wchar_t **argv, struct _getopt_data_w *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - optstring
    - d
    - posixly_correct
    argTypes:
    - wchar_t*
    - struct _getopt_data_w*
    - int
    constantsTouched: []
    func_position:
      end: 591
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 591
    functionName: _getopt_initialize_w
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _wgetenv
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *_getopt_initialize_w (const wchar_t *optstring, struct _getopt_data_w
      *d, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_initialize_w
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:602,1
    - Dst: exchange_w
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:618,1
    - Dst: wcscmp
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:625,1
    - Dst: exchange_w
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:629,1
    - Dst: wcschr
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:650,1
    - Dst: wcsncmp
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:667,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:669,1
    - Dst: alloca
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:683,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:697,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:700,1
    - Dst: fputwc
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:704,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:706,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:725,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:729,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:732,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:745,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:747,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:752,1
    - Dst: wcschr
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:762,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:768,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:772,1
    - Dst: wcschr
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:783,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:790,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:815,1
    - Dst: wcsncmp
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:828,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:830,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:849,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:851,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:866,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:868,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:880,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:882,1
    - Dst: wcslen
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:888,1
    - Dst: fwprintf
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:926,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 259
    argCount: 8
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - longind
    - long_only
    - d
    - posixly_correct
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    - int
    - struct _getopt_data_w*
    - int
    constantsTouched: []
    func_position:
      end: 941
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 941
    functionName: _getopt_internal_r_w
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - alloca
    - wcschr
    - fputwc
    - wcscmp
    - wcslen
    - fwprintf
    - _getopt_initialize_w
    - exchange_w
    - wcsncmp
    linkageType: ''
    returnType: int
    signature: int _getopt_internal_r_w (int argc, wchar_t *const *argv, const wchar_t
      *optstring, const struct option_w *longopts, int *longind, int long_only, struct
      _getopt_data_w *d, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_w
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - longind
    - long_only
    - posixly_correct
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 952
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 952
    functionName: _getopt_internal_w
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_w
    linkageType: ''
    returnType: int
    signature: int _getopt_internal_w (int argc, wchar_t *const *argv, const wchar_t
      *optstring, const struct option_w *longopts, int *longind, int long_only, int
      posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_w
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - argc
    - argv
    - optstring
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    constantsTouched: []
    func_position:
      end: 956
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 956
    functionName: getopt_w
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_w
    linkageType: ''
    returnType: int
    signature: int getopt_w (int argc, wchar_t *const *argv, const wchar_t *optstring)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_w
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    constantsTouched: []
    func_position:
      end: 960
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 960
    functionName: getopt_long_w
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_w
    linkageType: ''
    returnType: int
    signature: int getopt_long_w (int argc, wchar_t *const *argv, const wchar_t *options,
      const struct option_w *long_options, int *opt_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_w
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    constantsTouched: []
    func_position:
      end: 964
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 964
    functionName: getopt_long_only_w
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_w
    linkageType: ''
    returnType: int
    signature: int getopt_long_only_w (int argc, wchar_t *const *argv, const wchar_t
      *options, const struct option_w *long_options, int *opt_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_w
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    - d
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    - struct _getopt_data_w*
    constantsTouched: []
    func_position:
      end: 968
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 968
    functionName: _getopt_long_r_w
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_w
    linkageType: ''
    returnType: int
    signature: int _getopt_long_r_w (int argc, wchar_t *const *argv, const wchar_t
      *options, const struct option_w *long_options, int *opt_index, struct _getopt_data_w
      *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_w
      Src: /src/ndpi/src/lib/third_party/src/windows/getopt.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    - d
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    - struct _getopt_data_w*
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: _getopt_long_only_r_w
    functionSourceFile: /src/ndpi/src/lib/third_party/src/windows/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_w
    linkageType: ''
    returnType: int
    signature: int _getopt_long_only_r_w (int argc, wchar_t *const *argv, const wchar_t
      *options, const struct option_w *long_options, int *opt_index, struct _getopt_data_w
      *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - datalink_type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 246
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 246
    functionName: __is_datalink_supported
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __is_datalink_supported(int datalink_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: __is_l3_proto_supported
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __is_l3_proto_supported(int proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:268,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:273,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:309,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:316,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:323,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:324,1
    - Dst: dissect_l2
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:330,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:338,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:343,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:352,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:362,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:367,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:375,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:384,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:392,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:397,1
    - Dst: __is_l3_proto_supported
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:400,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:401,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 124
    argCount: 2
    argNames:
    - datalink_type
    - p
    argTypes:
    - int
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 408
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 408
    functionName: dissect_l2
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 1
    functionsReached:
    - dissect_l2
    - ntohs
    - le16toh
    - derr
    - assert
    - le32toh
    - __is_l3_proto_supported
    linkageType: ''
    returnType: int
    signature: int dissect_l2(int datalink_type, struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 432
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 432
    functionName: __is_l4_proto_supported
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __is_l4_proto_supported(int proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:442,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:454,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:455,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:456,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:460,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:461,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:462,1
    - Dst: __is_l4_proto_supported
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:466,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:467,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:472,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:483,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:488,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:490,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:508,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:512,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:518,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:524,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:546,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:554,1
    - Dst: __is_l4_proto_supported
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:559,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:560,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:565,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:574,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 577
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 577
    functionName: dissect_l3
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - ntohs
    - __is_l4_proto_supported
    - derr
    - assert
    linkageType: ''
    returnType: int
    signature: int dissect_l3(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:589,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:596,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:600,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:608,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:609,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:610,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:611,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:615,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:620,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:626,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:637,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:641,1
    - Dst: dissect_l3
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:646,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:648,1
    - Dst: dissect_l4
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:651,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:656,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:661,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:662,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:675,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:680,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:684,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:689,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:691,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:695,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:703,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:707,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:722,1
    - Dst: dissect_l3
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:727,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:729,1
    - Dst: dissect_l4
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:732,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 135
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 744
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 744
    functionName: dissect_l4
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 1
    functionsReached:
    - ddbg
    - ntohs
    - dissect_l3
    - dissect_l4
    - derr
    - assert
    linkageType: ''
    returnType: int
    signature: int dissect_l4(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:759,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:760,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:768,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:769,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:771,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 40
    argCount: 4
    argNames:
    - gtp_buffer
    - gtp_buffer_len
    - p
    - l3_proto
    argTypes:
    - unsigned char*
    - int
    - struct m_pkt*
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 822
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 822
    functionName: is_gtp_u
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - ntohs
    - htons
    linkageType: ''
    returnType: int
    signature: "int is_gtp_u(unsigned char *gtp_buffer, int gtp_buffer_len,\n\t\t
      \   const struct m_pkt *p, u_int16_t *l3_proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:830,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:838,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:843,1
    - Dst: is_gtp_u
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:849,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:851,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:853,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:857,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:860,1
    - Dst: dissect_l3
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:864,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:866,1
    - Dst: dissect_l4
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:869,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 874
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 874
    functionName: dissect_l4_detunneling
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - dissect_l3
    - dissect_l4
    - derr
    - is_gtp_u
    - assert
    linkageType: ''
    returnType: int
    signature: int dissect_l4_detunneling(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dissect_l2
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:879,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:881,1
    - Dst: dissect_l3
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:884,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:886,1
    - Dst: dissect_l4
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:889,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:891,1
    - Dst: dissect_l4_detunneling
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:895,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - datalink_type
    - p
    argTypes:
    - int
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 901
      start: 875
    functionDepth: 4
    functionLinenumber: 875
    functionLinenumberEnd: 901
    functionName: dissect_do
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - dissect_l2
    - dissect_l3
    - dissect_l4
    - derr
    - dissect_l4_detunneling
    linkageType: ''
    returnType: int
    signature: int dissect_do(int datalink_type, struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:915,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:918,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:922,1
    - Dst: rand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:924,1
    - Dst: rand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:925,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:930,1
    - Dst: rand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:931,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:933,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:938,1
    - Dst: rand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:940,1
    - Dst: rand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:941,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:943,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:948,1
    - Dst: rand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:950,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:952,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - Data
    - Size
    - MaxSize
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    constantsTouched: []
    func_position:
      end: 957
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 957
    functionName: internal_FuzzerMutate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - memset
    - memmove
    - rand
    linkageType: ''
    returnType: size_t
    signature: size_t internal_FuzzerMutate(uint8_t *Data, size_t Size, size_t MaxSize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:972,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:973,1
    - Dst: LLVMFuzzerMutate
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:975,1
    - Dst: __has_feature
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:983,1
    - Dst: __msan_unpoison
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:984,1
    - Dst: internal_FuzzerMutate
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:989,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:994,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1000,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1014,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1014,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1016,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1018,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1018,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1024,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1024,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1028,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1028,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1034,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1034,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1036,1
    - Dst: htons
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1038,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1038,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1042,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1045,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1046
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 1046
    functionName: update_do_l7
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - internal_FuzzerMutate
    - ntohs
    - LLVMFuzzerMutate
    - assert
    - __msan_unpoison
    - __has_feature
    - htons
    linkageType: ''
    returnType: void
    signature: void update_do_l7(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerMutate
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1055,1
    - Dst: internal_FuzzerMutate
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1057,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1063
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1063
    functionName: update_do_simplest
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - internal_FuzzerMutate
    - assert
    - LLVMFuzzerMutate
    linkageType: ''
    returnType: void
    signature: void update_do_simplest(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update_do_simplest
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1069,1
    - Dst: update_do_l7
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1073
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1073
    functionName: update_do
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - update_do_l7
    - update_do_simplest
    linkageType: ''
    returnType: void
    signature: void update_do(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1121
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1121
    functionName: swap_direction
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void swap_direction(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pl7m_malloc
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1127,1
    - Dst: pl7m_malloc
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1130,1
    - Dst: pl7m_free
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1132,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1154
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1154
    functionName: __dup_pkt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - pl7m_free
    - memcpy
    - pl7m_malloc
    linkageType: ''
    returnType: struct m_pkt
    signature: struct m_pkt *__dup_pkt(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pl7m_free
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1157,1
    - Dst: pl7m_free
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1159
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1159
    functionName: __free_pkt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - pl7m_free
    linkageType: ''
    returnType: void
    signature: void __free_pkt(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - h
    - p
    - prev
    - next
    argTypes:
    - struct pl7m_handle*
    - struct m_pkt*
    - struct m_pkt*
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1171
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1171
    functionName: __add_pkt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __add_pkt(struct pl7m_handle *h, struct m_pkt *p,\n\t\t      struct
      m_pkt *prev, struct m_pkt *next)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __free_pkt
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - h
    - p
    - prev
    argTypes:
    - struct pl7m_handle*
    - struct m_pkt*
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1180
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1180
    functionName: __del_pkt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - __free_pkt
    linkageType: ''
    returnType: void
    signature: void __del_pkt(struct pl7m_handle *h, struct m_pkt *p, struct m_pkt
      *prev)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - h
    - p
    - prev
    - next
    argTypes:
    - struct pl7m_handle*
    - struct m_pkt*
    - struct m_pkt*
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1206
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1206
    functionName: __swap_pkt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __swap_pkt(struct pl7m_handle *h, struct m_pkt *p, struct m_pkt
      *prev,\n\t\t      struct m_pkt *next)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __free_pkt
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1217,1
    - Dst: pl7m_free
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct pl7m_handle*
    constantsTouched: []
    func_position:
      end: 1221
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1221
    functionName: __free_m_pkts
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - pl7m_free
    - __free_pkt
    linkageType: ''
    returnType: void
    signature: void __free_m_pkts(struct pl7m_handle *h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1228,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1231,1
    - Dst: __del_pkt
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1232,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1235,1
    - Dst: __dup_pkt
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1236,1
    - Dst: __add_pkt
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1237,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1241,1
    - Dst: __swap_pkt
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1243,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1249,1
    - Dst: swap_direction
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - h
    - p
    - prev
    argTypes:
    - struct pl7m_handle*
    - struct m_pkt*
    - struct m_pkt**
    constantsTouched: []
    func_position:
      end: 1257
      start: 1223
    functionDepth: 2
    functionLinenumber: 1223
    functionLinenumberEnd: 1257
    functionName: do_pkt_actions
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - __del_pkt
    - __swap_pkt
    - rand
    - __add_pkt
    - swap_direction
    - __dup_pkt
    linkageType: ''
    returnType: struct m_pkt
    signature: struct m_pkt *do_pkt_actions(struct pl7m_handle *h, struct m_pkt *p,
      struct m_pkt **prev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update_do
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1262,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct m_pkt*
    constantsTouched: []
    func_position:
      end: 1265
      start: 1259
    functionDepth: 3
    functionLinenumber: 1259
    functionLinenumberEnd: 1265
    functionName: do_payload_actions
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - update_do
    linkageType: ''
    returnType: void
    signature: void do_payload_actions(struct m_pkt *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1282,1
    - Dst: pcap_open_dead
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1286,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1288,1
    - Dst: pcap_dump_fopen
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1292,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1294,1
    - Dst: pcap_close
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1295,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1303,1
    - Dst: pcap_dump
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1307,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1310,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1313,1
    - Dst: pcap_dump_close
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1315,1
    - Dst: pcap_close
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - h
    - fd_out
    - max_data_len
    argTypes:
    - struct pl7m_handle*
    - FILE*
    - size_t
    constantsTouched: []
    func_position:
      end: 1318
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1318
    functionName: __serialize_to_fd
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - pcap_open_dead
    - derr
    - pcap_dump_close
    - pcap_dump
    - assert
    - pcap_close
    - pcap_dump_fopen
    linkageType: ''
    returnType: size_t
    signature: "size_t __serialize_to_fd(struct pl7m_handle *h, FILE *fd_out,\n\t\t\t\tsize_t
      max_data_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmemopen
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1326,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1328,1
    - Dst: __serialize_to_fd
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - h
    - data
    - max_data_len
    argTypes:
    - struct pl7m_handle*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1334
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1334
    functionName: __serialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - __serialize_to_fd
    - derr
    - fmemopen
    linkageType: ''
    returnType: size_t
    signature: "size_t __serialize(struct pl7m_handle *h, const unsigned char *data,\n\t\t\t
      \ size_t max_data_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1349,1
    - Dst: pcap_fopen_offline
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1351,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1353,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1354,1
    - Dst: __is_datalink_supported
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1358,1
    - Dst: pcap_datalink
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1358,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1359,1
    - Dst: pcap_datalink
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1359,1
    - Dst: pcap_close
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1360,1
    - Dst: pl7m_calloc
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1364,1
    - Dst: pcap_close
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1366,1
    - Dst: pcap_datalink
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1369,1
    - Dst: pcap_next_ex
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1372,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1373,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1376,1
    - Dst: pl7m_calloc
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1380,1
    - Dst: __free_m_pkts
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1382,1
    - Dst: pcap_close
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1383,1
    - Dst: pl7m_malloc
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1386,1
    - Dst: pl7m_free
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1388,1
    - Dst: __free_m_pkts
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1389,1
    - Dst: pcap_close
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1390,1
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1393,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1394,1
    - Dst: dissect_do
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1398,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1400,1
    - Dst: pl7m_free
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1402,1
    - Dst: pl7m_free
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1403,1
    - Dst: __add_pkt
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1407,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1408,1
    - Dst: pcap_close
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1411,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 1
    argNames:
    - fd_in
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 1414
      start: 1336
    functionDepth: 5
    functionLinenumber: 1336
    functionLinenumberEnd: 1414
    functionName: __deserialize_from_fd
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - pcap_next_ex
    - pcap_datalink
    - pl7m_calloc
    - memcpy
    - __free_m_pkts
    - derr
    - pcap_fopen_offline
    - fclose
    - pl7m_malloc
    - __is_datalink_supported
    - pl7m_free
    - dissect_do
    - assert
    - __add_pkt
    - pcap_close
    linkageType: ''
    returnType: struct pl7m_handle
    signature: struct pl7m_handle *__deserialize_from_fd(FILE *fd_in)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmemopen
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1423,1
    - Dst: derr
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1425,1
    - Dst: __deserialize_from_fd
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1429
      start: 1416
    functionDepth: 6
    functionLinenumber: 1416
    functionLinenumberEnd: 1429
    functionName: __deserialize
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - __deserialize_from_fd
    - derr
    - fmemopen
    linkageType: ''
    returnType: struct pl7m_handle
    signature: "struct pl7m_handle *__deserialize(const unsigned char *data,\n\t\t\t\t\t
      size_t data_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1436,1
    - Dst: rand
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1441,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1445,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1450,1
    - Dst: do_pkt_actions
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1452,1
    - Dst: ddbg
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1459,1
    - Dst: do_payload_actions
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - h
    - seed
    argTypes:
    - struct pl7m_handle*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1468
      start: 1431
    functionDepth: 4
    functionLinenumber: 1431
    functionLinenumberEnd: 1468
    functionName: __mutate
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - ddbg
    - rand
    - do_pkt_actions
    - do_payload_actions
    - srand
    linkageType: ''
    returnType: void
    signature: void __mutate(struct pl7m_handle *h, unsigned int seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __deserialize
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1483,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1487,1
    - Dst: __mutate
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1492,1
    - Dst: __serialize
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1493,1
    - Dst: __free_m_pkts
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - data
    - size
    - max_size
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1496
      start: 1472
    functionDepth: 7
    functionLinenumber: 1472
    functionLinenumberEnd: 1496
    functionName: pl7m_mutator
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - memcpy
    - __serialize
    - __free_m_pkts
    - __mutate
    - __deserialize
    linkageType: ''
    returnType: size_t
    signature: "size_t pl7m_mutator(uint8_t *data, size_t size, size_t max_size,\n\t\t
      \   unsigned int seed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __deserialize_from_fd
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1509,1
    - Dst: fwrite
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1513,1
    - Dst: __mutate
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1518,1
    - Dst: __serialize_to_fd
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1519,1
    - Dst: __free_m_pkts
      Src: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c:1520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - fd_in
    - fd_out
    - max_size
    - seed
    argTypes:
    - FILE*
    - FILE*
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 1522
      start: 1498
    functionDepth: 6
    functionLinenumber: 1498
    functionLinenumberEnd: 1522
    functionName: pl7m_mutator_fd
    functionSourceFile: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
    functionUses: 0
    functionsReached:
    - __deserialize_from_fd
    - fwrite
    - __free_m_pkts
    - __mutate
    - __serialize_to_fd
    linkageType: ''
    returnType: size_t
    signature: "size_t pl7m_mutator_fd(FILE *fd_in, FILE *fd_out, size_t max_size,\n\t\t
      \      unsigned int seed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - hash
    - bits
    argTypes:
    - u_int32_t
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: _hll_rank
    functionSourceFile: /src/ndpi/src/lib/third_party/src/hll/hll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t _hll_rank(u_int32_t hash, u_int8_t bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/hll/hll.c:77,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/src/hll/hll.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - hll
    - bits
    argTypes:
    - struct ndpi_hll*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: hll_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/hll/hll.c
    functionUses: 1
    functionsReached:
    - ndpi_calloc
    - memset
    linkageType: ''
    returnType: int
    signature: int hll_init(struct ndpi_hll *hll, u_int8_t bits)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/src/hll/hll.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hll
    argTypes:
    - struct ndpi_hll*
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: hll_destroy
    functionSourceFile: /src/ndpi/src/lib/third_party/src/hll/hll.c
    functionUses: 1
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void hll_destroy(struct ndpi_hll *hll)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/hll/hll.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - hll
    argTypes:
    - struct ndpi_hll*
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: hll_reset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/hll/hll.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void hll_reset(struct ndpi_hll *hll)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _hll_rank
      Src: /src/ndpi/src/lib/third_party/src/hll/hll.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - hll
    - hash
    argTypes:
    - struct ndpi_hll*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 118
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 118
    functionName: _hll_add_hash
    functionSourceFile: /src/ndpi/src/lib/third_party/src/hll/hll.c
    functionUses: 0
    functionsReached:
    - _hll_rank
    linkageType: ''
    returnType: int
    signature: int _hll_add_hash(struct ndpi_hll *hll, u_int32_t hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MurmurHash
      Src: /src/ndpi/src/lib/third_party/src/hll/hll.c:122,1
    - Dst: _hll_add_hash
      Src: /src/ndpi/src/lib/third_party/src/hll/hll.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hll
    - buf
    - size
    argTypes:
    - struct ndpi_hll*
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: hll_add
    functionSourceFile: /src/ndpi/src/lib/third_party/src/hll/hll.c
    functionUses: 2
    functionsReached:
    - _hll_add_hash
    - MurmurHash
    linkageType: ''
    returnType: int
    signature: int hll_add(struct ndpi_hll *hll, const void *buf, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/src/hll/hll.c:162,1
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/src/hll/hll.c:165,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - hll
    argTypes:
    - struct ndpi_hll*
    constantsTouched: []
    func_position:
      end: 171
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 171
    functionName: hll_count
    functionSourceFile: /src/ndpi/src/lib/third_party/src/hll/hll.c
    functionUses: 1
    functionsReached:
    - log
    linkageType: ''
    returnType: double
    signature: double hll_count(const struct ndpi_hll *hll)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ROTL32
      Src: /src/ndpi/src/lib/third_party/src/hll/MurmurHash3.c:28,1
    - Dst: ROTL32
      Src: /src/ndpi/src/lib/third_party/src/hll/MurmurHash3.c:32,1
    - Dst: ROTL32
      Src: /src/ndpi/src/lib/third_party/src/hll/MurmurHash3.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - key
    - len
    - seed
    argTypes:
    - void*
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 67
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 67
    functionName: MurmurHash
    functionSourceFile: /src/ndpi/src/lib/third_party/src/hll/MurmurHash3.c
    functionUses: 2
    functionsReached:
    - ROTL32
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t MurmurHash(const void *key, u_int32_t len, u_int32_t seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __has_feature
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:62,1
    - Dst: fopen
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:87,1
    - Dst: getline
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:94,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:95,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:105,1
    - Dst: fclose
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:106,1
    - Dst: __get_cpuid
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:115,1
    - Dst: __cpuid
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - what
    argTypes:
    - unsigned int
    constantsTouched: []
    func_position:
      end: 140
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 140
    functionName: mbedtls_aesni_has_support
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c
    functionUses: 0
    functionsReached:
    - getline
    - fclose
    - fopen
    - __get_cpuid
    - strstr
    - __cpuid
    - __has_feature
    - free
    linkageType: ''
    returnType: int
    signature: int mbedtls_aesni_has_support( unsigned int what )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - mode
    - input
    - output
    argTypes:
    - mbedtls_aes_context*
    - int
    - unsigned char[]
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 211
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 211
    functionName: mbedtls_aesni_crypt_ecb
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mbedtls_aesni_crypt_ecb( mbedtls_aes_context *ctx,\n                     int
      mode,\n                     const unsigned char input[16],\n                     unsigned
      char output[16] )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - c
    - a
    - b
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 323
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 323
    functionName: mbedtls_aesni_gcm_mult
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void mbedtls_aesni_gcm_mult( unsigned char c[16],\n                     const
      unsigned char a[16],\n                     const unsigned char b[16] )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:334,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - invkey
    - fwdkey
    - nr
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 345
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 345
    functionName: mbedtls_aesni_inverse_key
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void mbedtls_aesni_inverse_key( unsigned char *invkey,\n                        const
      unsigned char *fwdkey, int nr )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rk
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 395
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 395
    functionName: aesni_setkey_enc_128
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void aesni_setkey_enc_128( unsigned char *rk,\n                                  const
      unsigned char *key )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rk
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 452
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 452
    functionName: aesni_setkey_enc_192
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void aesni_setkey_enc_192( unsigned char *rk,\n                                  const
      unsigned char *key )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rk
    - key
    argTypes:
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 518
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 518
    functionName: aesni_setkey_enc_256
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void aesni_setkey_enc_256( unsigned char *rk,\n                                  const
      unsigned char *key )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: aesni_setkey_enc_128
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:529,1
    - Dst: aesni_setkey_enc_192
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:530,1
    - Dst: aesni_setkey_enc_256
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c:531,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - rk
    - key
    - bits
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 536
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 536
    functionName: mbedtls_aesni_setkey_enc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c
    functionUses: 0
    functionsReached:
    - aesni_setkey_enc_128
    - aesni_setkey_enc_192
    - aesni_setkey_enc_256
    linkageType: ''
    returnType: int
    signature: "int mbedtls_aesni_setkey_enc( unsigned char *rk,\n                      const
      unsigned char *key,\n                      size_t bits )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - operation
    - input
    - output
    argTypes:
    - void*
    - mbedtls_operation_t
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: aes_crypt_ecb_wrap
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
    functionUses: 0
    functionsReached:
    - mbedtls_aes_crypt_ecb
    linkageType: ''
    returnType: int
    signature: "int aes_crypt_ecb_wrap( void *ctx, mbedtls_operation_t operation,\n
      \       const unsigned char *input, unsigned char *output )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_setkey_dec
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - key
    - key_bitlen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: aes_setkey_dec_wrap
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
    functionUses: 0
    functionsReached:
    - mbedtls_aes_setkey_dec
    linkageType: ''
    returnType: int
    signature: "int aes_setkey_dec_wrap( void *ctx, const unsigned char *key,\n                                unsigned
      int key_bitlen )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - key
    - key_bitlen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: aes_setkey_enc_wrap
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
    functionUses: 0
    functionsReached:
    - mbedtls_aes_setkey_enc
    linkageType: ''
    returnType: int
    signature: "int aes_setkey_enc_wrap( void *ctx, const unsigned char *key,\n                                unsigned
      int key_bitlen )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aes_init
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: aes_ctx_zero
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
    functionUses: 0
    functionsReached:
    - mbedtls_aes_init
    linkageType: ''
    returnType: void
    signature: void aes_ctx_zero( void *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_gcm_setkey
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - key
    - key_bitlen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: gcm_aes_setkey_wrap
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
    functionUses: 0
    functionsReached:
    - mbedtls_gcm_setkey
    linkageType: ''
    returnType: int
    signature: "int gcm_aes_setkey_wrap( void *ctx, const unsigned char *key,\n                                unsigned
      int key_bitlen )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - length
    - input
    - output
    argTypes:
    - void*
    - size_t
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: null_crypt_stream
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: int
    signature: "int null_crypt_stream( void *ctx, size_t length,\n                              const
      unsigned char *input,\n                              unsigned char *output )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - key
    - key_bitlen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: null_setkey
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int null_setkey( void *ctx, const unsigned char *key,\n                        unsigned
      int key_bitlen )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: null_ctx_alloc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * null_ctx_alloc( void )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: null_ctx_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_ctx_free( void *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - dst
    - src
    - n
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: xorbytes
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xorbytes( unsigned char *dst, const unsigned char *src, int n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - output
    - buf
    - ectr
    - input
    - n
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: xorbytes3d
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xorbytes3d( unsigned char *output, unsigned char *buf,\n\t\tconst
      unsigned char *ectr, const unsigned char *input, int n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - output
    - buf
    - ectr
    - input
    - n
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: xorbytes3e
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xorbytes3e( unsigned char *output, unsigned char *buf,\n\t\tconst
      unsigned char *ectr, const unsigned char *input, int n)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GCM_VALIDATE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:100,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - aes_ctx
    argTypes:
    - mbedtls_gcm_context*
    - void*
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: mbedtls_gcm_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 1
    functionsReached:
    - memset
    - GCM_VALIDATE
    linkageType: ''
    returnType: void
    signature: void mbedtls_gcm_init( mbedtls_gcm_context *ctx, void *aes_ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:121,1
    - Dst: mbedtls_cipher_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:122,1
    - Dst: MBEDTLS_GET_UINT32_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:126,1
    - Dst: MBEDTLS_GET_UINT32_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:127,1
    - Dst: MBEDTLS_GET_UINT32_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:130,1
    - Dst: MBEDTLS_GET_UINT32_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:131,1
    - Dst: mbedtls_aesni_has_support
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_gcm_context*
    constantsTouched: []
    func_position:
      end: 173
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 173
    functionName: gcm_gen_table
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached:
    - mbedtls_aesni_has_support
    - memset
    - MBEDTLS_GET_UINT32_BE
    - mbedtls_cipher_update
    linkageType: ''
    returnType: int
    signature: int gcm_gen_table( mbedtls_gcm_context *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:183,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:184,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:185,1
    - Dst: mbedtls_cipher_info_from_values
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:187,1
    - Dst: mbedtls_cipher_setkey
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:200,1
    - Dst: gcm_gen_table
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - cipher
    - key
    - keybits
    argTypes:
    - mbedtls_gcm_context*
    - mbedtls_cipher_id_t
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 210
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 210
    functionName: mbedtls_gcm_setkey
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 2
    functionsReached:
    - gcm_gen_table
    - GCM_VALIDATE_RET
    - mbedtls_cipher_info_from_values
    - mbedtls_cipher_setkey
    linkageType: ''
    returnType: int
    signature: "int mbedtls_gcm_setkey( mbedtls_gcm_context *ctx,\n                        mbedtls_cipher_id_t
      cipher,\n                        const unsigned char *key,\n                        unsigned
      int keybits )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_PUT_UINT64_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:240,1
    - Dst: MBEDTLS_PUT_UINT64_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:241,1
    - Dst: mbedtls_aesni_gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:243,1
    - Dst: MBEDTLS_PUT_UINT64_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:276,1
    - Dst: MBEDTLS_PUT_UINT64_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - x
    - output
    argTypes:
    - mbedtls_gcm_context*
    - unsigned char[]
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 278
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 278
    functionName: gcm_mult
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 1
    functionsReached:
    - mbedtls_aesni_gcm_mult
    - MBEDTLS_PUT_UINT64_BE
    linkageType: ''
    returnType: void
    signature: "void gcm_mult( mbedtls_gcm_context *ctx, const unsigned char x[16],\n
      \                     unsigned char output[16] )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:290,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:291,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:302,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:303,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:311,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:316,1
    - Dst: MBEDTLS_PUT_UINT64_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:318,1
    - Dst: xorbytes
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:325,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:327,1
    - Dst: xorbytes
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:333,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:335,1
    - Dst: mbedtls_cipher_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - mode
    - iv
    - iv_len
    argTypes:
    - mbedtls_gcm_context*
    - int
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 345
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 345
    functionName: mbedtls_gcm_starts
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached:
    - memset
    - gcm_mult
    - memcpy
    - mbedtls_cipher_update
    - GCM_VALIDATE_RET
    - xorbytes
    - MBEDTLS_PUT_UINT64_BE
    linkageType: ''
    returnType: int
    signature: "int mbedtls_gcm_starts( mbedtls_gcm_context *ctx,\n                        int
      mode,\n                        const unsigned char *iv, size_t iv_len )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:370,1
    - Dst: xorbytes
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:385,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:388,1
    - Dst: xorbytes
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:399,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:401,1
    - Dst: xorbytes
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - add
    - add_len
    argTypes:
    - mbedtls_gcm_context*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 411
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 411
    functionName: mbedtls_gcm_update_ad
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached:
    - GCM_VALIDATE_RET
    - xorbytes
    - gcm_mult
    linkageType: ''
    returnType: int
    signature: "int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx,\n                           const
      unsigned char *add, size_t add_len )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - y
    argTypes:
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: gcm_incr
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gcm_incr( unsigned char y[16] )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_cipher_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:433,1
    - Dst: mbedtls_platform_zeroize
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:436,1
    - Dst: xorbytes3d
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:441,1
    - Dst: xorbytes3e
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - ctx
    - ectr
    - offset
    - use_len
    - input
    - output
    argTypes:
    - mbedtls_gcm_context*
    - unsigned char[]
    - size_t
    - size_t
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 446
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 446
    functionName: gcm_mask
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached:
    - xorbytes3d
    - xorbytes3e
    - mbedtls_platform_zeroize
    - mbedtls_cipher_update
    linkageType: ''
    returnType: int
    signature: "int gcm_mask( mbedtls_gcm_context *ctx,\n                     unsigned
      char ectr[16],\n                     size_t offset, size_t use_len,\n                     const
      unsigned char *input,\n                     unsigned char *output )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:461,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:471,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:472,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:473,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:488,1
    - Dst: gcm_mask
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:498,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:502,1
    - Dst: gcm_incr
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:514,1
    - Dst: gcm_mask
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:515,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:518,1
    - Dst: gcm_incr
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:527,1
    - Dst: gcm_mask
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:528,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 6
    argNames:
    - ctx
    - input
    - input_length
    - output
    - output_size
    - output_length
    argTypes:
    - mbedtls_gcm_context*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 533
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 533
    functionName: mbedtls_gcm_update
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached:
    - gcm_incr
    - GCM_VALIDATE_RET
    - gcm_mult
    - gcm_mask
    linkageType: ''
    returnType: int
    signature: "int mbedtls_gcm_update( mbedtls_gcm_context *ctx,\n                        const
      unsigned char *input, size_t input_length,\n                        unsigned
      char *output, size_t output_size,\n                        size_t *output_length
      )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:544,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:545,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:558,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:565,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:567,1
    - Dst: MBEDTLS_PUT_UINT64_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:571,1
    - Dst: MBEDTLS_PUT_UINT64_BE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:572,1
    - Dst: xorbytes
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:574,1
    - Dst: gcm_mult
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:576,1
    - Dst: xorbytes
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:578,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - ctx
    - output
    - output_size
    - output_length
    - tag
    - tag_len
    argTypes:
    - mbedtls_gcm_context*
    - unsigned char*
    - size_t
    - size_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 582
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 582
    functionName: mbedtls_gcm_finish
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached:
    - gcm_mult
    - memcpy
    - GCM_VALIDATE_RET
    - xorbytes
    - MBEDTLS_PUT_UINT64_BE
    linkageType: ''
    returnType: int
    signature: "int mbedtls_gcm_finish( mbedtls_gcm_context *ctx,\n                        unsigned
      char *output, size_t output_size,\n                        size_t *output_length,\n
      \                       unsigned char *tag, size_t tag_len )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:599,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:600,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:601,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:602,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:603,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:604,1
    - Dst: mbedtls_gcm_starts
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:606,1
    - Dst: mbedtls_gcm_update_ad
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:609,1
    - Dst: mbedtls_gcm_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:612,1
    - Dst: mbedtls_gcm_finish
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:616,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 11
    argNames:
    - ctx
    - mode
    - length
    - iv
    - iv_len
    - add
    - add_len
    - input
    - output
    - tag_len
    - tag
    argTypes:
    - mbedtls_gcm_context*
    - int
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned char*
    - size_t
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 620
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 620
    functionName: mbedtls_gcm_crypt_and_tag
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 1
    functionsReached:
    - mbedtls_gcm_update_ad
    - GCM_VALIDATE_RET
    - mbedtls_gcm_update
    - mbedtls_gcm_finish
    - mbedtls_gcm_starts
    linkageType: ''
    returnType: int
    signature: "int mbedtls_gcm_crypt_and_tag( mbedtls_gcm_context *ctx,\n                       int
      mode,\n                       size_t length,\n                       const unsigned
      char *iv,\n                       size_t iv_len,\n                       const
      unsigned char *add,\n                       size_t add_len,\n                       const
      unsigned char *input,\n                       unsigned char *output,\n                       size_t
      tag_len,\n                       unsigned char *tag )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:638,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:639,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:640,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:641,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:642,1
    - Dst: GCM_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:643,1
    - Dst: mbedtls_gcm_crypt_and_tag
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:645,1
    - Dst: mbedtls_platform_zeroize
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:658,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 10
    argNames:
    - ctx
    - length
    - iv
    - iv_len
    - add
    - add_len
    - tag
    - tag_len
    - input
    - output
    argTypes:
    - mbedtls_gcm_context*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 663
      start: 622
    functionDepth: 4
    functionLinenumber: 622
    functionLinenumberEnd: 663
    functionName: mbedtls_gcm_auth_decrypt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 0
    functionsReached:
    - mbedtls_gcm_crypt_and_tag
    - GCM_VALIDATE_RET
    - mbedtls_platform_zeroize
    linkageType: ''
    returnType: int
    signature: "int mbedtls_gcm_auth_decrypt( mbedtls_gcm_context *ctx,\n                      size_t
      length,\n                      const unsigned char *iv,\n                      size_t
      iv_len,\n                      const unsigned char *add,\n                      size_t
      add_len,\n                      const unsigned char *tag,\n                      size_t
      tag_len,\n                      const unsigned char *input,\n                      unsigned
      char *output )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_gcm_context*
    constantsTouched: []
    func_position:
      end: 670
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 670
    functionName: mbedtls_gcm_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mbedtls_gcm_free( mbedtls_gcm_context *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: mbedtls_cipher_list
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int *mbedtls_cipher_list( void )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cipher_type
    argTypes:
    - mbedtls_cipher_type_t
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: mbedtls_cipher_info_from_type
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mbedtls_cipher_info_t
    signature: "mbedtls_cipher_info_t *mbedtls_cipher_info_from_type(\n    const mbedtls_cipher_type_t
      cipher_type )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cipher_name
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: mbedtls_cipher_info_from_string
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: mbedtls_cipher_info_t
    signature: "mbedtls_cipher_info_t *mbedtls_cipher_info_from_string(\n    const
      char *cipher_name )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - cipher_id
    - key_bitlen
    - mode
    argTypes:
    - mbedtls_cipher_id_t
    - int
    - mbedtls_cipher_mode_t
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: mbedtls_cipher_info_from_values
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: mbedtls_cipher_info_t
    signature: "mbedtls_cipher_info_t *mbedtls_cipher_info_from_values(\n    const
      mbedtls_cipher_id_t cipher_id,\n    int key_bitlen,\n    const mbedtls_cipher_mode_t
      mode )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:98,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_cipher_context_t*
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: mbedtls_cipher_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached:
    - memset
    - CIPHER_VALIDATE
    linkageType: ''
    returnType: void
    signature: void mbedtls_cipher_init( mbedtls_cipher_context_t *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:107,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:108,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:109,1
    - Dst: mbedtls_cipher_context_t*::cipher_info::base::setkey_enc_func
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:132,1
    - Dst: mbedtls_cipher_context_t*::cipher_info::base::setkey_dec_func
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - key
    - key_bitlen
    - operation
    argTypes:
    - mbedtls_cipher_context_t*
    - unsigned char*
    - int
    - mbedtls_operation_t
    constantsTouched: []
    func_position:
      end: 141
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 141
    functionName: mbedtls_cipher_setkey
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 1
    functionsReached:
    - mbedtls_cipher_context_t*::cipher_info::base::setkey_dec_func
    - CIPHER_VALIDATE_RET
    - mbedtls_cipher_context_t*::cipher_info::base::setkey_enc_func
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_setkey( mbedtls_cipher_context_t *ctx,\n                           const
      unsigned char *key,\n                           int key_bitlen,\n                           const
      mbedtls_operation_t operation )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:149,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:150,1
    - Dst: mbedtls_gcm_starts
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:173,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - iv
    - iv_len
    argTypes:
    - mbedtls_cipher_context_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 187
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 187
    functionName: mbedtls_cipher_set_iv
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mbedtls_gcm_starts
    - CIPHER_VALIDATE_RET
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_set_iv( mbedtls_cipher_context_t *ctx,\n                           const
      unsigned char *iv,\n                           size_t iv_len )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_cipher_context_t*
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: mbedtls_cipher_reset
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 1
    functionsReached:
    - CIPHER_VALIDATE_RET
    linkageType: ''
    returnType: int
    signature: int mbedtls_cipher_reset( mbedtls_cipher_context_t *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:205,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:206,1
    - Dst: mbedtls_gcm_update_ad
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - ad
    - ad_len
    argTypes:
    - mbedtls_cipher_context_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 221
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 221
    functionName: mbedtls_cipher_update_ad
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached:
    - CIPHER_VALIDATE_RET
    - mbedtls_gcm_update_ad
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_update_ad( mbedtls_cipher_context_t *ctx,\n                      const
      unsigned char *ad, size_t ad_len )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:230,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:231,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:232,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:233,1
    - Dst: mbedtls_cipher_get_block_size
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:239,1
    - Dst: mbedtls_cipher_context_t*::cipher_info::base::ecb_func
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:252,1
    - Dst: mbedtls_gcm_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:264,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:293,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:307,1
    - Dst: mbedtls_cipher_context_t*::cipher_info::base::cbc_func
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:310,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:342,1
    - Dst: mbedtls_cipher_context_t*::cipher_info::base::cbc_func
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:354,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 63
    argCount: 5
    argNames:
    - ctx
    - input
    - ilen
    - output
    - olen
    argTypes:
    - mbedtls_cipher_context_t*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 373
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 373
    functionName: mbedtls_cipher_update
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 3
    functionsReached:
    - mbedtls_cipher_get_block_size
    - memcpy
    - mbedtls_cipher_context_t*::cipher_info::base::ecb_func
    - mbedtls_gcm_update
    - CIPHER_VALIDATE_RET
    - mbedtls_cipher_context_t*::cipher_info::base::cbc_func
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned
      char *input,\n                   size_t ilen, unsigned char *output, size_t
      *olen )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:379,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:380,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:381,1
    - Dst: mbedtls_cipher_context_t*::add_padding
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:429,1
    - Dst: mbedtls_cipher_get_iv_size
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:429,1
    - Dst: mbedtls_cipher_get_block_size
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:432,1
    - Dst: mbedtls_cipher_context_t*::cipher_info::base::cbc_func
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:445,1
    - Dst: mbedtls_cipher_get_block_size
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:446,1
    - Dst: mbedtls_cipher_context_t*::get_padding
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:454,1
    - Dst: mbedtls_cipher_get_block_size
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:454,1
    - Dst: mbedtls_cipher_get_block_size
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:458,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 3
    argNames:
    - ctx
    - output
    - olen
    argTypes:
    - mbedtls_cipher_context_t*
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 466
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 466
    functionName: mbedtls_cipher_finish
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached:
    - mbedtls_cipher_context_t*::add_padding
    - mbedtls_cipher_get_iv_size
    - mbedtls_cipher_get_block_size
    - CIPHER_VALIDATE_RET
    - mbedtls_cipher_context_t*::get_padding
    - mbedtls_cipher_context_t*::cipher_info::base::cbc_func
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_finish( mbedtls_cipher_context_t *ctx,\n                   unsigned
      char *output, size_t *olen )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:473,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:474,1
    - Dst: mbedtls_gcm_finish
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - tag
    - tag_len
    argTypes:
    - mbedtls_cipher_context_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 496
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 496
    functionName: mbedtls_cipher_write_tag
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached:
    - mbedtls_gcm_finish
    - CIPHER_VALIDATE_RET
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_write_tag( mbedtls_cipher_context_t *ctx,\n                      unsigned
      char *tag, size_t tag_len )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:504,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:505,1
    - Dst: mbedtls_gcm_finish
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:531,1
    - Dst: mbedtls_ct_memcmp
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:540,1
    - Dst: mbedtls_platform_zeroize
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:550,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - tag
    - tag_len
    argTypes:
    - mbedtls_cipher_context_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 552
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 552
    functionName: mbedtls_cipher_check_tag
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached:
    - mbedtls_ct_memcmp
    - mbedtls_gcm_finish
    - CIPHER_VALIDATE_RET
    - mbedtls_platform_zeroize
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx,\n                      const
      unsigned char *tag, size_t tag_len )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:566,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:567,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:568,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:569,1
    - Dst: CIPHER_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:570,1
    - Dst: mbedtls_cipher_set_iv
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:573,1
    - Dst: mbedtls_cipher_reset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:576,1
    - Dst: mbedtls_cipher_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:579,1
    - Dst: mbedtls_cipher_finish
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 7
    argNames:
    - ctx
    - iv
    - iv_len
    - input
    - ilen
    - output
    - olen
    argTypes:
    - mbedtls_cipher_context_t*
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t*
    constantsTouched: []
    func_position:
      end: 590
      start: 558
    functionDepth: 4
    functionLinenumber: 558
    functionLinenumberEnd: 590
    functionName: mbedtls_cipher_crypt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
    functionUses: 0
    functionsReached:
    - mbedtls_cipher_finish
    - mbedtls_cipher_reset
    - mbedtls_cipher_update
    - CIPHER_VALIDATE_RET
    - mbedtls_cipher_set_iv
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_crypt( mbedtls_cipher_context_t *ctx,\n                  const
      unsigned char *iv, size_t iv_len,\n                  const unsigned char *input,
      size_t ilen,\n                  unsigned char *output, size_t *olen )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - sha256_t*
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: sha256_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sha256_init(sha256_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RX_8
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:154,1
    - Dst: RX_8
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:154,1
    - Dst: R
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - state
    - data
    argTypes:
    - uint32_t*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 178
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 178
    functionName: sha256_transform
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c
    functionUses: 2
    functionsReached:
    - R
    - RX_8
    linkageType: ''
    returnType: void
    signature: void sha256_transform(uint32_t *state, const uint32_t *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha256_transform
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - sha256_t*
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: sha256_write_byte_block
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c
    functionUses: 0
    functionsReached:
    - sha256_transform
    linkageType: ''
    returnType: void
    signature: void sha256_write_byte_block(sha256_t *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha256_write_byte_block
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p
    - data
    - size
    argTypes:
    - sha256_t*
    - unsigned char*
    - size_t
    constantsTouched: []
    func_position:
      end: 214
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 214
    functionName: sha256_update
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c
    functionUses: 1
    functionsReached:
    - sha256_write_byte_block
    linkageType: ''
    returnType: void
    signature: void sha256_update(sha256_t *p, const unsigned char *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha256_write_byte_block
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:228,1
    - Dst: sha256_write_byte_block
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:236,1
    - Dst: sha256_init
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - p
    - digest
    argTypes:
    - sha256_t*
    - unsigned char*
    constantsTouched: []
    func_position:
      end: 246
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 246
    functionName: sha256_final
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c
    functionUses: 1
    functionsReached:
    - sha256_write_byte_block
    - sha256_init
    linkageType: ''
    returnType: void
    signature: void sha256_final(sha256_t *p, unsigned char *digest)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sha256_init
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:295,1
    - Dst: sha256_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:296,1
    - Dst: sha256_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:297,1
    - Dst: sha256_final
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:298,1
    - Dst: sha256_init
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:315,1
    - Dst: sha256_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:316,1
    - Dst: sha256_update
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:317,1
    - Dst: sha256_final
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c:318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - out
    - data
    - data_len
    - key
    - key_len
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 319
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 319
    functionName: hmac_sha256
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c
    functionUses: 1
    functionsReached:
    - sha256_final
    - sha256_update
    - sha256_init
    linkageType: ''
    returnType: void
    signature: "void hmac_sha256 (uint8_t out[HMAC_SHA256_DIGEST_SIZE],\n             const
      uint8_t *data, size_t data_len,\n             const uint8_t *key, size_t key_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mbedtls_aesni_has_support
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:71,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:84,1
    - Dst: XTIME
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:84,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:93,1
    - Dst: XTIME
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:93,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:106,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:107,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:108,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:109,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:122,1
    - Dst: XTIME
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:122,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:123,1
    - Dst: ROTL8
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:130,1
    - Dst: ROTL8
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:131,1
    - Dst: ROTL8
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:132,1
    - Dst: MUL
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:136,1
    - Dst: MUL
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:137,1
    - Dst: MUL
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:138,1
    - Dst: MUL
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:139,1
    - Dst: ROTL8
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:141,1
    - Dst: ROTL8
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:142,1
    - Dst: ROTL8
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 145
    functionName: aes_gen_tables
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c
    functionUses: 0
    functionsReached:
    - MUL
    - mbedtls_aesni_has_support
    - ROTL8
    - MBEDTLS_BYTE_0
    - XTIME
    linkageType: ''
    returnType: void
    signature: void aes_gen_tables( void )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_VALIDATE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:159,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_aes_context*
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: mbedtls_aes_init
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c
    functionUses: 2
    functionsReached:
    - memset
    - AES_VALIDATE
    linkageType: ''
    returnType: void
    signature: void mbedtls_aes_init( mbedtls_aes_context *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_aes_context*
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: mbedtls_aes_free
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mbedtls_aes_free( mbedtls_aes_context *ctx )
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:182,1
    - Dst: AES_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:183,1
    - Dst: aes_gen_tables
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:195,1
    - Dst: mbedtls_aesni_setkey_enc
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:209,1
    - Dst: MBEDTLS_GET_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:214,1
    - Dst: MBEDTLS_BYTE_1
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:224,1
    - Dst: MBEDTLS_BYTE_2
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:225,1
    - Dst: MBEDTLS_BYTE_3
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:226,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:227,1
    - Dst: MBEDTLS_BYTE_1
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:240,1
    - Dst: MBEDTLS_BYTE_2
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:241,1
    - Dst: MBEDTLS_BYTE_3
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:242,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:243,1
    - Dst: MBEDTLS_BYTE_1
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:258,1
    - Dst: MBEDTLS_BYTE_2
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:259,1
    - Dst: MBEDTLS_BYTE_3
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:260,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:261,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:268,1
    - Dst: MBEDTLS_BYTE_1
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:269,1
    - Dst: MBEDTLS_BYTE_2
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:270,1
    - Dst: MBEDTLS_BYTE_3
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:271,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 3
    argNames:
    - ctx
    - key
    - keybits
    argTypes:
    - mbedtls_aes_context*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 281
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 281
    functionName: mbedtls_aes_setkey_enc
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c
    functionUses: 2
    functionsReached:
    - mbedtls_aesni_setkey_enc
    - MBEDTLS_BYTE_1
    - MBEDTLS_BYTE_3
    - AES_VALIDATE_RET
    - aes_gen_tables
    - MBEDTLS_GET_UINT32_LE
    - MBEDTLS_BYTE_0
    - MBEDTLS_BYTE_2
    linkageType: ''
    returnType: int
    signature: "int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned
      char *key,\n                    unsigned int keybits )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:294,1
    - Dst: AES_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:295,1
    - Dst: mbedtls_aes_init
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:297,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:302,1
    - Dst: mbedtls_aesni_inverse_key
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:309,1
    - Dst: AES_RT0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:326,1
    - Dst: MBEDTLS_BYTE_0
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:326,1
    - Dst: AES_RT1
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:327,1
    - Dst: MBEDTLS_BYTE_1
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:327,1
    - Dst: AES_RT2
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:328,1
    - Dst: MBEDTLS_BYTE_2
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:328,1
    - Dst: AES_RT3
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:329,1
    - Dst: MBEDTLS_BYTE_3
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:329,1
    - Dst: mbedtls_aes_free
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:339,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - ctx
    - key
    - keybits
    argTypes:
    - mbedtls_aes_context*
    - unsigned char*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 342
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 342
    functionName: mbedtls_aes_setkey_dec
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c
    functionUses: 1
    functionsReached:
    - MBEDTLS_BYTE_1
    - mbedtls_aesni_inverse_key
    - AES_RT3
    - MBEDTLS_BYTE_3
    - AES_RT0
    - mbedtls_aes_init
    - AES_VALIDATE_RET
    - AES_RT2
    - mbedtls_aes_free
    - mbedtls_aes_setkey_enc
    - AES_RT1
    - MBEDTLS_BYTE_0
    - MBEDTLS_BYTE_2
    linkageType: ''
    returnType: int
    signature: "int mbedtls_aes_setkey_dec( mbedtls_aes_context *ctx, const unsigned
      char *key,\n                    unsigned int keybits )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_GET_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:409,1
    - Dst: MBEDTLS_GET_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:410,1
    - Dst: MBEDTLS_GET_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:411,1
    - Dst: MBEDTLS_GET_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:412,1
    - Dst: AES_FROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:416,1
    - Dst: AES_FROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:417,1
    - Dst: AES_FROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:420,1
    - Dst: AES_XROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:428,1
    - Dst: AES_XROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:429,1
    - Dst: AES_XROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:430,1
    - Dst: AES_XROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:431,1
    - Dst: MBEDTLS_PUT_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:434,1
    - Dst: MBEDTLS_PUT_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:435,1
    - Dst: MBEDTLS_PUT_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:436,1
    - Dst: MBEDTLS_PUT_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - input
    - output
    argTypes:
    - mbedtls_aes_context*
    - unsigned char[]
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 440
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 440
    functionName: mbedtls_internal_aes_encrypt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c
    functionUses: 0
    functionsReached:
    - MBEDTLS_PUT_UINT32_LE
    - AES_FROUND
    - MBEDTLS_GET_UINT32_LE
    - AES_XROUND
    linkageType: ''
    returnType: int
    signature: "int mbedtls_internal_aes_encrypt( mbedtls_aes_context *ctx,\n                                  const
      unsigned char input[16],\n                                  unsigned char output[16]
      )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_GET_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:457,1
    - Dst: MBEDTLS_GET_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:458,1
    - Dst: MBEDTLS_GET_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:459,1
    - Dst: MBEDTLS_GET_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:460,1
    - Dst: AES_RROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:464,1
    - Dst: AES_RROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:465,1
    - Dst: AES_RROUND
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:468,1
    - Dst: AES_XROUNDD
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:476,1
    - Dst: AES_XROUNDD
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:477,1
    - Dst: AES_XROUNDD
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:478,1
    - Dst: AES_XROUNDD
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:479,1
    - Dst: MBEDTLS_PUT_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:483,1
    - Dst: MBEDTLS_PUT_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:484,1
    - Dst: MBEDTLS_PUT_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:485,1
    - Dst: MBEDTLS_PUT_UINT32_LE
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - input
    - output
    argTypes:
    - mbedtls_aes_context*
    - unsigned char[]
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 489
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 489
    functionName: mbedtls_internal_aes_decrypt
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c
    functionUses: 0
    functionsReached:
    - AES_RROUND
    - MBEDTLS_GET_UINT32_LE
    - MBEDTLS_PUT_UINT32_LE
    - AES_XROUNDD
    linkageType: ''
    returnType: int
    signature: "int mbedtls_internal_aes_decrypt( mbedtls_aes_context *ctx,\n                                  const
      unsigned char input[16],\n                                  unsigned char output[16]
      )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AES_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:499,1
    - Dst: AES_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:500,1
    - Dst: AES_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:501,1
    - Dst: AES_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:502,1
    - Dst: mbedtls_aesni_crypt_ecb
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:507,1
    - Dst: mbedtls_internal_aes_encrypt
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:512,1
    - Dst: mbedtls_internal_aes_decrypt
      Src: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - mode
    - input
    - output
    argTypes:
    - mbedtls_aes_context*
    - int
    - unsigned char[]
    - unsigned char[]
    constantsTouched: []
    func_position:
      end: 515
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 515
    functionName: mbedtls_aes_crypt_ecb
    functionSourceFile: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c
    functionUses: 2
    functionsReached:
    - mbedtls_internal_aes_encrypt
    - mbedtls_aesni_crypt_ecb
    - mbedtls_internal_aes_decrypt
    - AES_VALIDATE_RET
    linkageType: ''
    returnType: int
    signature: "int mbedtls_aes_crypt_ecb( mbedtls_aes_context *ctx,\n                           int
      mode,\n                           const unsigned char input[16],\n                           unsigned
      char output[16] )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward64
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:378,1
    - Dst: _BitScanForward
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:381,1
    - Dst: _BitScanForward
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - input_num
    argTypes:
    - unsigned long long
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: roaring_trailing_zeroes
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 5
    functionsReached:
    - _BitScanForward64
    - _BitScanForward
    linkageType: ''
    returnType: int
    signature: int roaring_trailing_zeroes(unsigned long long input_num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse64
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:396,1
    - Dst: _BitScanReverse
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:399,1
    - Dst: _BitScanReverse
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - input_num
    argTypes:
    - unsigned long long
    constantsTouched: []
    func_position:
      end: 406
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 406
    functionName: roaring_leading_zeroes
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached:
    - _BitScanReverse
    - _BitScanReverse64
    linkageType: ''
    returnType: int
    signature: int roaring_leading_zeroes(unsigned long long input_num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_ctzll
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_num
    argTypes:
    - unsigned long long
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: roaring_trailing_zeroes
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 5
    functionsReached:
    - __builtin_ctzll
    linkageType: ''
    returnType: int
    signature: int roaring_trailing_zeroes(unsigned long long input_num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clzll
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_num
    argTypes:
    - unsigned long long
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: roaring_leading_zeroes
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached:
    - __builtin_clzll
    linkageType: ''
    returnType: int
    signature: int roaring_leading_zeroes(unsigned long long input_num)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 460
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 460
    functionName: roaring_hamming_backup
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: int
    signature: int roaring_hamming_backup(uint64_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: vaddv_u8
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:467,1
    - Dst: vcnt_u8
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:467,1
    - Dst: vcreate_u8
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:467,1
    - Dst: roaring_hamming_backup
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:469,1
    - Dst: __popcnt64
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:472,1
    - Dst: roaring_hamming_backup
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:477,1
    - Dst: __popcnt
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:480,1
    - Dst: __popcnt
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:481,1
    - Dst: __builtin_popcountll
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 486
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 486
    functionName: roaring_hamming
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 13
    functionsReached:
    - __popcnt64
    - vcnt_u8
    - vaddv_u8
    - __builtin_popcountll
    - __popcnt
    - roaring_hamming_backup
    - vcreate_u8
    linkageType: ''
    returnType: int
    signature: int roaring_hamming(uint64_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic_fetch_add_explicit
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 683
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 683
    functionName: croaring_refcount_inc
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 1
    functionsReached:
    - atomic_fetch_add_explicit
    linkageType: ''
    returnType: void
    signature: void croaring_refcount_inc(croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic_thread_fence
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 697
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 697
    functionName: croaring_refcount_dec
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached:
    - atomic_thread_fence
    linkageType: ''
    returnType: bool
    signature: bool croaring_refcount_dec(croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load_explicit
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 701
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 701
    functionName: croaring_refcount_get
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached:
    - atomic_load_explicit
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_refcount_get(const croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_refcount_t*::fetch_add
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 708
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 708
    functionName: croaring_refcount_inc
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 1
    functionsReached:
    - croaring_refcount_t*::fetch_add
    linkageType: ''
    returnType: void
    signature: void croaring_refcount_inc(croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 717
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 717
    functionName: croaring_refcount_dec
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: bool
    signature: bool croaring_refcount_dec(croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: croaring_refcount_t*::load
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 721
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 721
    functionName: croaring_refcount_get
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached:
    - croaring_refcount_t*::load
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_refcount_get(const croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedIncrement
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 733
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 733
    functionName: croaring_refcount_inc
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 1
    functionsReached:
    - _InterlockedIncrement
    linkageType: ''
    returnType: void
    signature: void croaring_refcount_inc(croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedDecrement
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 737
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 737
    functionName: croaring_refcount_dec
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached:
    - _InterlockedDecrement
    linkageType: ''
    returnType: bool
    signature: bool croaring_refcount_dec(croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 746
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 746
    functionName: croaring_refcount_get
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_refcount_get(const croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 754
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 754
    functionName: croaring_refcount_inc
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void croaring_refcount_inc(croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 760
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 760
    functionName: croaring_refcount_dec
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool croaring_refcount_dec(croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - croaring_refcount_t*
    constantsTouched: []
    func_position:
      end: 764
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 764
    functionName: croaring_refcount_get
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t croaring_refcount_get(const croaring_refcount_t *val)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 848
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 848
    functionName: roaring::api::bitset_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bitset_size_in_bytes(const bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 853
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 853
    functionName: roaring::api::bitset_size_in_bits
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bitset_size_in_bits(const bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitset
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: roaring::api::bitset_size_in_words
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bitset_size_in_words(const bitset_t *bitset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bitset_grow
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bitset
    - i
    argTypes:
    - bitset_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 886
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 886
    functionName: roaring::api::bitset_set
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - bitset_grow
    linkageType: ''
    returnType: void
    signature: void bitset_set(bitset_t *bitset, size_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bitset_grow
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bitset
    - i
    - flag
    argTypes:
    - bitset_t*
    - size_t
    - bool
    constantsTouched: []
    func_position:
      end: 903
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 903
    functionName: roaring::api::bitset_set_to_value
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - bitset_grow
    linkageType: ''
    returnType: void
    signature: void bitset_set_to_value(bitset_t *bitset, size_t i, bool flag)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bitset
    - i
    argTypes:
    - bitset_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 912
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 912
    functionName: roaring::api::bitset_get
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bitset_get(const bitset_t *bitset, size_t i)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring_trailing_zeroes
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:985,1
    - Dst: roaring_trailing_zeroes
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:992,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - bitset
    - i
    argTypes:
    - bitset_t*
    - size_t*
    constantsTouched: []
    func_position:
      end: 998
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 998
    functionName: roaring::api::bitset_next_set_bit
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring_trailing_zeroes
    linkageType: ''
    returnType: bool
    signature: bool bitset_next_set_bit(const bitset_t *bitset, size_t *i)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - bitset
    - buffer
    - capacity
    - startfrom
    argTypes:
    - bitset_t*
    - size_t*
    - size_t
    - size_t*
    constantsTouched: []
    func_position:
      end: 1040
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1040
    functionName: roaring::api::bitset_next_set_bits
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t bitset_next_set_bits(const bitset_t *bitset, size_t *buffer,\n
      \                                  size_t capacity, size_t *startfrom)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iterator
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:1053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - b
    - iterator
    - ptr
    argTypes:
    - bitset_t*
    - bitset_iterator
    - void*
    constantsTouched: []
    func_position:
      end: 1059
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1059
    functionName: roaring::api::bitset_for_each
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - iterator
    linkageType: ''
    returnType: bool
    signature: "bool bitset_for_each(const bitset_t *b, bitset_iterator iterator,\n
      \                           void *ptr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:1063,1
    - Dst: roaring::api::bitset_next_set_bit
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:1064,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:1065,1
    - Dst: printf
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:1067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - bitset_t*
    constantsTouched: []
    func_position:
      end: 1068
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1068
    functionName: roaring::api::bitset_print
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::bitset_next_set_bit
    - printf
    linkageType: ''
    returnType: void
    signature: void bitset_print(const bitset_t *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1118
    functionName: roaring::api::roaring_bitmap_create
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 21
    functionsReached:
    - roaring::api::roaring_bitmap_create_with_capacity
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_init_with_capacity
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 1134
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1134
    functionName: roaring::api::roaring_bitmap_init_cleared
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_init_with_capacity
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_init_cleared(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 1159
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1159
    functionName: roaring::api::roaring_bitmap_get_copy_on_write
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_get_copy_on_write(const roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - cow
    argTypes:
    - roaring_bitmap_t*
    - bool
    constantsTouched: []
    func_position:
      end: 1166
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1166
    functionName: roaring::api::roaring_bitmap_set_copy_on_write
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_set_copy_on_write(roaring_bitmap_t *r, bool cow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_add_range_closed
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:1464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1465
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1465
    functionName: roaring::api::roaring_bitmap_add_range
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_add_range_closed
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_add_range(roaring_bitmap_t *r, uint64_t min,\n
      \                                    uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_remove_range_closed
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:1484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1485
      start: 1481
    functionDepth: 0
    functionLinenumber: 1481
    functionLinenumberEnd: 1485
    functionName: roaring::api::roaring_bitmap_remove_range
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_remove_range_closed
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_remove_range(roaring_bitmap_t *r, uint64_t min,\n
      \                                       uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_iterator_init
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:2056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - newit
    argTypes:
    - roaring_bitmap_t*
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 2057
      start: 2054
    functionDepth: 1
    functionLinenumber: 2054
    functionLinenumberEnd: 2057
    functionName: roaring::api::roaring_init_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 2
    functionsReached:
    - roaring::api::roaring_iterator_init
    linkageType: ''
    returnType: CROARING_DEPRECATED
    signature: "CROARING_DEPRECATED roaring_init_iterator(\n    const roaring_bitmap_t
      *r, roaring_uint32_iterator_t *newit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_iterator_init_last
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:2070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - newit
    argTypes:
    - roaring_bitmap_t*
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 2071
      start: 2068
    functionDepth: 1
    functionLinenumber: 2068
    functionLinenumberEnd: 2071
    functionName: roaring::api::roaring_init_iterator_last
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_iterator_init_last
    linkageType: ''
    returnType: CROARING_DEPRECATED
    signature: "CROARING_DEPRECATED roaring_init_iterator_last(\n    const roaring_bitmap_t
      *r, roaring_uint32_iterator_t *newit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_iterator_create
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2084
    functionDepth: 2
    functionLinenumber: 2084
    functionLinenumberEnd: 2087
    functionName: 'roaring_uint32_iterator_t *

      roaring_create_iterator(const roaring_bitmap_t *r)'
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_iterator_create
    linkageType: ''
    returnType: CROARING_DEPRECATED
    signature: 'CROARING_DEPRECATED roaring_uint32_iterator_t *

      roaring_create_iterator(const roaring_bitmap_t *r)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_uint32_iterator_advance
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 2104
      start: 2101
    functionDepth: 1
    functionLinenumber: 2101
    functionLinenumberEnd: 2104
    functionName: roaring::api::roaring_advance_uint32_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_uint32_iterator_advance
    linkageType: ''
    returnType: CROARING_DEPRECATED
    signature: "CROARING_DEPRECATED roaring_advance_uint32_iterator(\n    roaring_uint32_iterator_t
      *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_uint32_iterator_previous
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:2120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 2121
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2121
    functionName: roaring::api::roaring_previous_uint32_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_uint32_iterator_previous
    linkageType: ''
    returnType: CROARING_DEPRECATED
    signature: "CROARING_DEPRECATED roaring_previous_uint32_iterator(\n    roaring_uint32_iterator_t
      *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_uint32_iterator_move_equalorlarger
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:2135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - val
    argTypes:
    - roaring_uint32_iterator_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2136
      start: 2132
    functionDepth: 1
    functionLinenumber: 2132
    functionLinenumberEnd: 2136
    functionName: roaring::api::roaring_move_uint32_iterator_equalorlarger
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 1
    functionsReached:
    - roaring::api::roaring_uint32_iterator_move_equalorlarger
    linkageType: ''
    returnType: CROARING_DEPRECATED
    signature: "CROARING_DEPRECATED roaring_move_uint32_iterator_equalorlarger(roaring_uint32_iterator_t
      *it,\n                                           uint32_t val)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_uint32_iterator_copy
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2149
    functionName: 'roaring_uint32_iterator_t *

      roaring_copy_uint32_iterator(const roaring_uint32_iterator_t *it)'
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_uint32_iterator_copy
    linkageType: ''
    returnType: CROARING_DEPRECATED
    signature: 'CROARING_DEPRECATED roaring_uint32_iterator_t *

      roaring_copy_uint32_iterator(const roaring_uint32_iterator_t *it)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_uint32_iterator_free
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:2159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - roaring_uint32_iterator_t*
    constantsTouched: []
    func_position:
      end: 2160
      start: 2157
    functionDepth: 1
    functionLinenumber: 2157
    functionLinenumberEnd: 2160
    functionName: roaring::api::roaring_free_uint32_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_uint32_iterator_free
    linkageType: ''
    returnType: CROARING_DEPRECATED
    signature: "CROARING_DEPRECATED roaring_free_uint32_iterator(\n    roaring_uint32_iterator_t
      *it)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_uint32_iterator_read
      Src: /src/ndpi/src/lib/third_party/include/roaring.h:2179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - it
    - buf
    - count
    argTypes:
    - roaring_uint32_iterator_t*
    - uint32_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 2180
      start: 2177
    functionDepth: 1
    functionLinenumber: 2177
    functionLinenumberEnd: 2180
    functionName: roaring::api::roaring_read_uint32_iterator
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_uint32_iterator_read
    linkageType: ''
    returnType: CROARING_DEPRECATED
    signature: "CROARING_DEPRECATED roaring_read_uint32_iterator(\n    roaring_uint32_iterator_t
      *it, uint32_t *buf, uint32_t count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_create_with_capacity
      Src: /src/ndpi/src/lib/third_party/include/roaring_v2.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: roaring::api::roaring_bitmap_create
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring_v2.h
    functionUses: 21
    functionsReached:
    - roaring::api::roaring_bitmap_create_with_capacity
    linkageType: ''
    returnType: roaring_bitmap_t
    signature: roaring_bitmap_t *roaring_bitmap_create(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_init_with_capacity
      Src: /src/ndpi/src/lib/third_party/include/roaring_v2.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: roaring::api::roaring_bitmap_init_cleared
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring_v2.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_init_with_capacity
    linkageType: ''
    returnType: void
    signature: void roaring_bitmap_init_cleared(roaring_bitmap_t *r)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - roaring_bitmap_t*
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: roaring::api::roaring_bitmap_get_copy_on_write
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring_v2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool roaring_bitmap_get_copy_on_write(const roaring_bitmap_t* r)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - cow
    argTypes:
    - roaring_bitmap_t*
    - bool
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: roaring::api::roaring_bitmap_set_copy_on_write
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring_v2.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_set_copy_on_write(roaring_bitmap_t* r,\n                                                    bool
      cow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_add_range_closed
      Src: /src/ndpi/src/lib/third_party/include/roaring_v2.h:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: roaring::api::roaring_bitmap_add_range
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring_v2.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_add_range_closed
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_add_range(roaring_bitmap_t *r,\n                                            uint64_t
      min, uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roaring::api::roaring_bitmap_remove_range_closed
      Src: /src/ndpi/src/lib/third_party/include/roaring_v2.h:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - min
    - max
    argTypes:
    - roaring_bitmap_t*
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: roaring::api::roaring_bitmap_remove_range
    functionSourceFile: /src/ndpi/src/lib/third_party/include/roaring_v2.h
    functionUses: 0
    functionsReached:
    - roaring::api::roaring_bitmap_remove_range_closed
    linkageType: ''
    returnType: void
    signature: "void roaring_bitmap_remove_range(roaring_bitmap_t *r,\n                                               uint64_t
      min, uint64_t max)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: secure_memzero
    functionSourceFile: /src/ndpi/src/lib/third_party/include/secure_memzero.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void secure_memzero(void * ptr, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _smz_memset_fptr
      Src: /src/ndpi/src/lib/third_party/include/secure_memzero.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: secure_memzero
    functionSourceFile: /src/ndpi/src/lib/third_party/include/secure_memzero.h
    functionUses: 1
    functionsReached:
    - _smz_memset_fptr
    linkageType: ''
    returnType: void
    signature: void secure_memzero(void * ptr, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:22,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: binary_fuse_murmur64
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse_murmur64(uint64_t h)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_fuse_murmur64
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - seed
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: binary_fuse_mix_split
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - binary_fuse_murmur64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse_mix_split(uint64_t key, uint64_t seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _rotr64
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - uint64_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: binary_fuse_rotl64
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - _rotr64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse_rotl64(uint64_t n, unsigned int c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - n
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: binary_fuse_reduce
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t binary_fuse_reduce(uint32_t hash, uint32_t n)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: binary_fuse8_fingerprint
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse8_fingerprint(uint64_t hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:53,1
    - Dst: UINT64_C
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - seed
    argTypes:
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: binary_fuse_rng_splitmix64
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - UINT64_C
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse_rng_splitmix64(uint64_t *seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: binary_fuse_mulhi
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse_mulhi(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __umulh
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: binary_fuse_mulhi
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - __umulh
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse_mulhi(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _umul128
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: binary_fuse_mulhi
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - _umul128
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse_mulhi(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    constantsTouched: []
    func_position:
      end: 134
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 134
    functionName: binary_fuse_mulhi
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse_mulhi(uint64_t a, uint64_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hash
    - filter
    argTypes:
    - uint64_t
    - binary_fuse8_t*
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: binary_fuse8_hash_batch
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_hashes_t
    signature: "binary_hashes_t binary_fuse8_hash_batch(uint64_t hash,\n                                        const
      binary_fuse8_t *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - index
    - hash
    - filter
    argTypes:
    - int
    - uint64_t
    - binary_fuse8_t*
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: binary_fuse8_hash
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t binary_fuse8_hash(int index, uint64_t hash,\n                                        const
      binary_fuse8_t *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_fuse8_hash_batch
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - filter
    argTypes:
    - uint64_t
    - binary_fuse8_t*
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: binary_fuse8_contain
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - binary_fuse8_hash_batch
    linkageType: ''
    returnType: bool
    signature: "bool binary_fuse8_contain(uint64_t key,\n                                        const
      binary_fuse8_t *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:182,1
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:182,1
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:182,1
    - Dst: floor
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:184,1
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:184,1
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arity
    - size
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: binary_fuse_calculate_segment_length
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - log
    - floor
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t binary_fuse_calculate_segment_length(uint32_t arity,\n                                                             uint32_t
      size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: binary_fuse_max
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double binary_fuse_max(double a, double b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_fuse_max
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:200,1
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:200,1
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:200,1
    - Dst: binary_fuse_max
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:202,1
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:202,1
    - Dst: log
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arity
    - size
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: binary_fuse_calculate_size_factor
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - binary_fuse_max
    - log
    linkageType: ''
    returnType: double
    signature: "double binary_fuse_calculate_size_factor(uint32_t arity,\n                                                        uint32_t
      size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_fuse_calculate_segment_length
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:214,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - size
    - filter
    argTypes:
    - uint32_t
    - binary_fuse8_t*
    constantsTouched: []
    func_position:
      end: 237
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 237
    functionName: binary_fuse8_allocate
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - ndpi_malloc
    - binary_fuse_calculate_segment_length
    linkageType: ''
    returnType: bool
    signature: "bool binary_fuse8_allocate(uint32_t size,\n                                         binary_fuse8_t
      *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - binary_fuse8_t*
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: binary_fuse8_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t binary_fuse8_size_in_bytes(const binary_fuse8_t *filter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - filter
    argTypes:
    - binary_fuse8_t*
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: binary_fuse8_free
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void binary_fuse8_free(binary_fuse8_t *filter)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: binary_fuse_mod3
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t binary_fuse_mod3(uint8_t x)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_fuse_rng_splitmix64
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:268,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:286,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:287,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:288,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:289,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:290,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:291,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:302,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:303,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:304,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:305,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:306,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:307,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:308,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:365,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:366,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:367,1
    - Dst: binary_fuse_rng_splitmix64
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:368,1
    - Dst: binary_fuse8_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:387,1
    - Dst: binary_fuse8_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:388,1
    - Dst: binary_fuse8_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:389,1
    - Dst: binary_fuse_mod3
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:400,1
    - Dst: binary_fuse_mod3
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:407,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:416,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:417,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:418,1
    - Dst: binary_fuse_rng_splitmix64
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:419,1
    - Dst: binary_fuse8_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:428,1
    - Dst: binary_fuse8_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:429,1
    - Dst: binary_fuse8_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:430,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:437,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:438,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:439,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:440,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:441,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:442,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 120
    argCount: 3
    argNames:
    - keys
    - size
    - filter
    argTypes:
    - uint64_t*
    - uint32_t
    - binary_fuse8_t*
    constantsTouched: []
    func_position:
      end: 444
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 444
    functionName: binary_fuse8_populate
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached:
    - memset
    - ndpi_free
    - binary_fuse_rng_splitmix64
    - binary_fuse_mod3
    - binary_fuse8_hash
    linkageType: ''
    returnType: bool
    signature: "bool binary_fuse8_populate(const uint64_t *keys, uint32_t size,\n
      \                          binary_fuse8_t *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - uint64_t
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: binary_fuse16_fingerprint
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t binary_fuse16_fingerprint(uint64_t hash)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hash
    - filter
    argTypes:
    - uint64_t
    - binary_fuse16_t*
    constantsTouched: []
    func_position:
      end: 474
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 474
    functionName: binary_fuse16_hash_batch
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_hashes_t
    signature: "binary_hashes_t binary_fuse16_hash_batch(uint64_t hash,\n                                        const
      binary_fuse16_t *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - index
    - hash
    - filter
    argTypes:
    - int
    - uint64_t
    - binary_fuse16_t*
    constantsTouched: []
    func_position:
      end: 484
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 484
    functionName: binary_fuse16_hash
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t binary_fuse16_hash(int index, uint64_t hash,\n                                        const
      binary_fuse16_t *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_fuse16_hash_batch
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - filter
    argTypes:
    - uint64_t
    - binary_fuse16_t*
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: binary_fuse16_contain
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 1
    functionsReached:
    - binary_fuse16_hash_batch
    linkageType: ''
    returnType: bool
    signature: "bool binary_fuse16_contain(uint64_t key,\n                                        const
      binary_fuse16_t *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_fuse_calculate_segment_length
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:504,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - size
    - filter
    argTypes:
    - uint32_t
    - binary_fuse16_t*
    constantsTouched: []
    func_position:
      end: 527
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 527
    functionName: binary_fuse16_allocate
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 1
    functionsReached:
    - ndpi_calloc
    - binary_fuse_calculate_segment_length
    linkageType: ''
    returnType: bool
    signature: "bool binary_fuse16_allocate(uint32_t size,\n                                         binary_fuse16_t
      *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - binary_fuse16_t*
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: binary_fuse16_size_in_bytes
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t binary_fuse16_size_in_bytes(const binary_fuse16_t *filter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - filter
    argTypes:
    - binary_fuse16_t*
    constantsTouched: []
    func_position:
      end: 544
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 544
    functionName: binary_fuse16_free
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 3
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void binary_fuse16_free(binary_fuse16_t *filter)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: binary_fuse_rng_splitmix64
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:555,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:573,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:574,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:575,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:576,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:577,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:578,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:589,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:590,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:591,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:592,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:593,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:594,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:595,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:652,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:653,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:654,1
    - Dst: binary_fuse_rng_splitmix64
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:655,1
    - Dst: binary_fuse16_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:674,1
    - Dst: binary_fuse16_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:675,1
    - Dst: binary_fuse16_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:676,1
    - Dst: binary_fuse_mod3
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:687,1
    - Dst: binary_fuse_mod3
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:694,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:703,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:704,1
    - Dst: memset
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:705,1
    - Dst: binary_fuse_rng_splitmix64
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:706,1
    - Dst: binary_fuse16_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:715,1
    - Dst: binary_fuse16_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:716,1
    - Dst: binary_fuse16_hash
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:717,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:724,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:725,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:726,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:727,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:728,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h:729,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 120
    argCount: 3
    argNames:
    - keys
    - size
    - filter
    argTypes:
    - uint64_t*
    - uint32_t
    - binary_fuse16_t*
    constantsTouched: []
    func_position:
      end: 731
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 731
    functionName: binary_fuse16_populate
    functionSourceFile: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
    functionUses: 1
    functionsReached:
    - memset
    - ndpi_free
    - binary_fuse_rng_splitmix64
    - binary_fuse_mod3
    - binary_fuse16_hash
    linkageType: ''
    returnType: bool
    signature: "bool binary_fuse16_populate(const uint64_t *keys, uint32_t size,\n
      \                          binary_fuse16_t *filter)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:402,1
    - Dst: malloc
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:407,1
    - Dst: WINAPI_FAMILY_PARTITION
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:423,1
    - Dst: GetFullPathNameW
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:425,1
    - Dst: malloc
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:432,1
    - Dst: WINAPI_FAMILY_PARTITION
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:444,1
    - Dst: GetFullPathNameW
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:446,1
    - Dst: wcsncpy_s
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:451,1
    - Dst: dirent_first
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:472,1
    - Dst: _wclosedir
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:480,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - wchar_t*
    constantsTouched: []
    func_position:
      end: 482
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 482
    functionName: _wopendir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached:
    - _wclosedir
    - wcsncpy_s
    - malloc
    - GetFullPathNameW
    - WINAPI_FAMILY_PARTITION
    - dirent_first
    - dirent_set_errno
    linkageType: ''
    returnType: _WDIR
    signature: '_WDIR *

      _wopendir(const wchar_t *dirname)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _wreaddir_r
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - _WDIR*
    constantsTouched: []
    func_position:
      end: 502
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 502
    functionName: _wreaddir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached:
    - _wreaddir_r
    linkageType: ''
    returnType: struct _wdirent
    signature: 'struct _wdirent *

      _wreaddir(_WDIR *dirp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:516,1
    - Dst: dirent_next
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:522,1
    - Dst: dirent_next
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:556,1
    - Dst: dirent_hash
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:559,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - dirp
    - entry
    - result
    argTypes:
    - _WDIR*
    - struct _wdirent*
    - struct _wdirent**
    constantsTouched: []
    func_position:
      end: 575
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 575
    functionName: _wreaddir_r
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 1
    functionsReached:
    - dirent_next
    - dirent_hash
    - dirent_set_errno
    linkageType: ''
    returnType: int
    signature: "int _wreaddir_r(\n\t_WDIR *dirp, struct _wdirent *entry, struct _wdirent
      **result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:586,1
    - Dst: FindClose
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:596,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:604,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - _WDIR*
    constantsTouched: []
    func_position:
      end: 609
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 609
    functionName: _wclosedir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 1
    functionsReached:
    - FindClose
    - free
    - dirent_set_errno
    linkageType: ''
    returnType: int
    signature: int _wclosedir(_WDIR *dirp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:622,1
    - Dst: dirent_first
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - _WDIR*
    constantsTouched: []
    func_position:
      end: 626
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 626
    functionName: _wrewinddir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached:
    - FindClose
    - dirent_first
    linkageType: ''
    returnType: void
    signature: void _wrewinddir(_WDIR* dirp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindFirstFileExW
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:633,1
    - Dst: GetLastError
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:649,1
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:653,1
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:658,1
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - _WDIR*
    constantsTouched: []
    func_position:
      end: 667
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 667
    functionName: dirent_first
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 2
    functionsReached:
    - FindFirstFileExW
    - dirent_set_errno
    - GetLastError
    linkageType: ''
    returnType: WIN32_FIND_DATAW
    signature: 'WIN32_FIND_DATAW *

      dirent_first(_WDIR *dirp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindNextFileW
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - _WDIR*
    constantsTouched: []
    func_position:
      end: 692
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 692
    functionName: dirent_next
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 1
    functionsReached:
    - FindNextFileW
    linkageType: ''
    returnType: WIN32_FIND_DATAW
    signature: 'WIN32_FIND_DATAW *

      dirent_next(_WDIR *dirp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - datap
    argTypes:
    - WIN32_FIND_DATAW*
    constantsTouched: []
    func_position:
      end: 711
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 711
    functionName: dirent_hash
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long dirent_hash(WIN32_FIND_DATAW *datap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:718,1
    - Dst: malloc
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:723,1
    - Dst: _wopendir
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:735,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:744,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 746
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 746
    functionName: opendir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 3
    functionsReached:
    - _wopendir
    - malloc
    - free
    - dirent_set_errno
    linkageType: ''
    returnType: DIR
    signature: DIR *opendir(const char *dirname)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: readdir_r
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    constantsTouched: []
    func_position:
      end: 761
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 761
    functionName: readdir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 2
    functionsReached:
    - readdir_r
    linkageType: ''
    returnType: struct dirent
    signature: 'struct dirent *

      readdir(DIR *dirp)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirent_next
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:774,1
    - Dst: wcstombs_s
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:797,1
    - Dst: dirent_next
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:818,1
    - Dst: dirent_hash
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - dirp
    - entry
    - result
    argTypes:
    - DIR*
    - struct dirent*
    - struct dirent**
    constantsTouched: []
    func_position:
      end: 852
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 852
    functionName: readdir_r
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 2
    functionsReached:
    - dirent_next
    - wcstombs_s
    - dirent_hash
    linkageType: ''
    returnType: int
    signature: "int readdir_r(\n\tDIR *dirp, struct dirent *entry, struct dirent **result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _wclosedir
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:864,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:868,1
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    constantsTouched: []
    func_position:
      end: 875
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 875
    functionName: closedir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 4
    functionsReached:
    - free
    - dirent_set_errno
    - _wclosedir
    linkageType: ''
    returnType: int
    signature: int closedir(DIR *dirp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _wrewinddir
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    constantsTouched: []
    func_position:
      end: 886
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 886
    functionName: rewinddir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 1
    functionsReached:
    - _wrewinddir
    linkageType: ''
    returnType: void
    signature: void rewinddir(DIR *dirp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:893,1
    - Dst: dirent_next
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:898,1
    - Dst: dirent_hash
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - _WDIR*
    constantsTouched: []
    func_position:
      end: 909
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 909
    functionName: _wtelldir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached:
    - dirent_next
    - dirent_hash
    - dirent_set_errno
    linkageType: ''
    returnType: long
    signature: long _wtelldir(_WDIR *dirp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dirent_set_errno
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:916,1
    - Dst: _wtelldir
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dirp
    argTypes:
    - DIR*
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: telldir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 1
    functionsReached:
    - _wtelldir
    - dirent_set_errno
    linkageType: ''
    returnType: long
    signature: long telldir(DIR *dirp)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FindClose
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:939,1
    - Dst: dirent_first
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:940,1
    - Dst: dirent_next
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:956,1
    - Dst: dirent_hash
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:967,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - dirp
    - loc
    argTypes:
    - _WDIR*
    - long
    constantsTouched: []
    func_position:
      end: 981
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 981
    functionName: _wseekdir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached:
    - dirent_next
    - FindClose
    - dirent_hash
    - dirent_first
    linkageType: ''
    returnType: void
    signature: void _wseekdir(_WDIR *dirp, long loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _wseekdir
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dirp
    - loc
    argTypes:
    - DIR*
    - long
    constantsTouched: []
    func_position:
      end: 991
      start: 984
    functionDepth: 3
    functionLinenumber: 984
    functionLinenumberEnd: 991
    functionName: seekdir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 1
    functionsReached:
    - _wseekdir
    linkageType: ''
    returnType: void
    signature: void seekdir(DIR *dirp, long loc)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1003,1
    - Dst: malloc
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1017,1
    - Dst: readdir_r
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1024,1
    - Dst: filter
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1032,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1058,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1062,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1072,1
    - Dst: free
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1085,1
    - Dst: closedir
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1088,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 2
    argNames:
    - dirname
    - namelist
    argTypes:
    - char*
    - struct dirent***
    constantsTouched: []
    func_position:
      end: 1090
      start: 994
    functionDepth: 3
    functionLinenumber: 994
    functionLinenumberEnd: 1090
    functionName: scandir
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached:
    - closedir
    - opendir
    - filter
    - malloc
    - readdir_r
    - qsort
    - free
    linkageType: ''
    returnType: int
    signature: "int scandir(\n\tconst char *dirname, struct dirent ***namelist,\n\tint
      (*filter)(const struct dirent*),\n\tint (*compare)(const struct dirent**, const
      struct dirent**))"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcoll
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct dirent**
    - struct dirent**
    constantsTouched: []
    func_position:
      end: 1097
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1097
    functionName: alphasort
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached:
    - strcoll
    linkageType: ''
    returnType: int
    signature: int alphasort(const struct dirent **a, const struct dirent **b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strverscmp
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct dirent**
    - struct dirent**
    constantsTouched: []
    func_position:
      end: 1104
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1104
    functionName: versionsort
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached:
    - strverscmp
    linkageType: ''
    returnType: int
    signature: int versionsort(const struct dirent **a, const struct dirent **b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1124,1
    - Dst: isdigit
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1136,1
    - Dst: isdigit
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1137,1
    - Dst: isdigit
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1140,1
    - Dst: isdigit
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1143,1
    - Dst: isdigit
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1143,1
    - Dst: isdigit
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1149,1
    - Dst: isdigit
      Src: /src/ndpi/src/lib/third_party/include/windows/dirent.h:1152,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    constantsTouched: []
    func_position:
      end: 1165
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1165
    functionName: strverscmp
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 1
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: int strverscmp(const char *a, const char *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 5
    argNames:
    - pReturnValue
    - wcstr
    - sizeInWords
    - mbstr
    - count
    argTypes:
    - size_t*
    - wchar_t*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 1193
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1193
    functionName: dirent_mbstowcs_s
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dirent_mbstowcs_s(\n\tsize_t *pReturnValue, wchar_t *wcstr,\n\tsize_t
      sizeInWords, const char *mbstr, size_t count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - pReturnValue
    - mbstr
    - sizeInBytes
    - wcstr
    - count
    argTypes:
    - size_t*
    - char*
    - size_t
    - wchar_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 1223
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1223
    functionName: dirent_wcstombs_s
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dirent_wcstombs_s(\n\tsize_t *pReturnValue, char *mbstr,\n\tsize_t
      sizeInBytes, const wchar_t *wcstr, size_t count)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1233
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1233
    functionName: dirent_set_errno
    functionSourceFile: /src/ndpi/src/lib/third_party/include/windows/dirent.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dirent_set_errno(int error)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - high
    - low
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: mbedtls_error_add
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mbedtls_error_add( int high, int low,\n                                     const
      char *file, int line )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - mbedtls_cipher_info_t*
    constantsTouched: []
    func_position:
      end: 421
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 421
    functionName: mbedtls_cipher_info_get_type
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mbedtls_cipher_type_t
    signature: "mbedtls_cipher_type_t mbedtls_cipher_info_get_type(\n    const mbedtls_cipher_info_t
      *info )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - mbedtls_cipher_info_t*
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: mbedtls_cipher_info_get_mode
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mbedtls_cipher_mode_t
    signature: "mbedtls_cipher_mode_t mbedtls_cipher_info_get_mode(\n    const mbedtls_cipher_info_t
      *info )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - mbedtls_cipher_info_t*
    constantsTouched: []
    func_position:
      end: 459
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 459
    functionName: mbedtls_cipher_info_get_key_bitlen
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t mbedtls_cipher_info_get_key_bitlen(\n    const mbedtls_cipher_info_t
      *info )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - mbedtls_cipher_info_t*
    constantsTouched: []
    func_position:
      end: 479
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 479
    functionName: mbedtls_cipher_info_get_name
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *mbedtls_cipher_info_get_name(\n    const mbedtls_cipher_info_t
      *info )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - mbedtls_cipher_info_t*
    constantsTouched: []
    func_position:
      end: 498
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 498
    functionName: mbedtls_cipher_info_get_iv_size
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t mbedtls_cipher_info_get_iv_size(\n    const mbedtls_cipher_info_t
      *info )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - mbedtls_cipher_info_t*
    constantsTouched: []
    func_position:
      end: 517
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 517
    functionName: mbedtls_cipher_info_get_block_size
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t mbedtls_cipher_info_get_block_size(\n    const mbedtls_cipher_info_t
      *info )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - mbedtls_cipher_info_t*
    constantsTouched: []
    func_position:
      end: 535
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 535
    functionName: mbedtls_cipher_info_has_variable_key_bitlen
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_info_has_variable_key_bitlen(\n    const mbedtls_cipher_info_t
      *info )"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - mbedtls_cipher_info_t*
    constantsTouched: []
    func_position:
      end: 553
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 553
    functionName: mbedtls_cipher_info_has_variable_iv_size
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_info_has_variable_iv_size(\n    const mbedtls_cipher_info_t
      *info )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_INTERNAL_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_cipher_context_t*
    constantsTouched: []
    func_position:
      end: 580
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 580
    functionName: mbedtls_cipher_get_block_size
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 2
    functionsReached:
    - MBEDTLS_INTERNAL_VALIDATE_RET
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int mbedtls_cipher_get_block_size(\n    const mbedtls_cipher_context_t
      *ctx )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_INTERNAL_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_cipher_context_t*
    constantsTouched: []
    func_position:
      end: 599
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 599
    functionName: mbedtls_cipher_get_cipher_mode
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached:
    - MBEDTLS_INTERNAL_VALIDATE_RET
    linkageType: ''
    returnType: mbedtls_cipher_mode_t
    signature: "mbedtls_cipher_mode_t mbedtls_cipher_get_cipher_mode(\n    const mbedtls_cipher_context_t
      *ctx )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_INTERNAL_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_cipher_context_t*
    constantsTouched: []
    func_position:
      end: 622
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 622
    functionName: mbedtls_cipher_get_iv_size
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 1
    functionsReached:
    - MBEDTLS_INTERNAL_VALIDATE_RET
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_get_iv_size(\n    const mbedtls_cipher_context_t
      *ctx )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_INTERNAL_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_cipher_context_t*
    constantsTouched: []
    func_position:
      end: 641
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 641
    functionName: mbedtls_cipher_get_type
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached:
    - MBEDTLS_INTERNAL_VALIDATE_RET
    linkageType: ''
    returnType: mbedtls_cipher_type_t
    signature: "mbedtls_cipher_type_t mbedtls_cipher_get_type(\n    const mbedtls_cipher_context_t
      *ctx )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_INTERNAL_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_cipher_context_t*
    constantsTouched: []
    func_position:
      end: 660
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 660
    functionName: mbedtls_cipher_get_name
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached:
    - MBEDTLS_INTERNAL_VALIDATE_RET
    linkageType: ''
    returnType: char
    signature: "char *mbedtls_cipher_get_name(\n    const mbedtls_cipher_context_t
      *ctx )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_INTERNAL_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_cipher_context_t*
    constantsTouched: []
    func_position:
      end: 680
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 680
    functionName: mbedtls_cipher_get_key_bitlen
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached:
    - MBEDTLS_INTERNAL_VALIDATE_RET
    linkageType: ''
    returnType: int
    signature: "int mbedtls_cipher_get_key_bitlen(\n    const mbedtls_cipher_context_t
      *ctx )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MBEDTLS_INTERNAL_VALIDATE_RET
      Src: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mbedtls_cipher_context_t*
    constantsTouched: []
    func_position:
      end: 699
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 699
    functionName: mbedtls_cipher_get_operation
    functionSourceFile: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
    functionUses: 0
    functionsReached:
    - MBEDTLS_INTERNAL_VALIDATE_RET
    linkageType: ''
    returnType: mbedtls_operation_t
    signature: "mbedtls_operation_t mbedtls_cipher_get_operation(\n    const mbedtls_cipher_context_t
      *ctx )"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/nats.c:46,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/nats.c:52,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/nats.c:60,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/nats.c:63,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/nats.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/nats.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 72
    functionName: ndpi_search_nats_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/nats.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_strnstr
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_nats_tcp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/nats.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: init_nats_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/nats.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_nats_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/roughtime.c:64,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/roughtime.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: ndpi_int_roughtime_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/roughtime.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_roughtime_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                              struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/roughtime.c:76,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/roughtime.c:80,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/roughtime.c:84,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/roughtime.c:84,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/roughtime.c:89,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/roughtime.c:91,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/roughtime.c:96,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/roughtime.c:96,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/roughtime.c:99,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/roughtime.c:107,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/roughtime.c:107,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/roughtime.c:110,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/roughtime.c:117,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/roughtime.c:119,1
    - Dst: ndpi_int_roughtime_add_connection
      Src: /src/ndpi/src/lib/protocols/roughtime.c:124,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 125
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 125
    functionName: ndpi_search_roughtime
    functionSourceFile: /src/ndpi/src/lib/protocols/roughtime.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_roughtime_add_connection
    - NDPI_ARRAY_LENGTH
    - NDPI_LOG_INFO
    - le32toh
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_roughtime(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/roughtime.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: init_roughtime_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/roughtime.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_roughtime_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/hamachi.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hamachi.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ndpi_int_hamachi_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/hamachi.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_hamachi_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                            struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/hamachi.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hamachi.c:50,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/hamachi.c:50,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hamachi.c:51,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/hamachi.c:51,1
    - Dst: ndpi_int_hamachi_add_connection
      Src: /src/ndpi/src/lib/protocols/hamachi.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/hamachi.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: search_hamachi_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/hamachi.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - ndpi_int_hamachi_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void search_hamachi_tcp(struct ndpi_detection_module_struct* ndpi_struct,
      \n                               struct ndpi_flow_struct* flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/hamachi.c:65,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/hamachi.c:70,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/hamachi.c:71,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hamachi.c:84,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/hamachi.c:84,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hamachi.c:89,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/hamachi.c:89,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/hamachi.c:90,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/hamachi.c:90,1
    - Dst: ndpi_int_hamachi_add_connection
      Src: /src/ndpi/src/lib/protocols/hamachi.c:151,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/hamachi.c:156,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 55
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 157
      start: 60
    functionDepth: 6
    functionLinenumber: 60
    functionLinenumberEnd: 157
    functionName: search_hamachi_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/hamachi.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - ntohl
    - ndpi_int_hamachi_add_connection
    - get_u_int64_t
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void search_hamachi_udp(struct ndpi_detection_module_struct* ndpi_struct,\n
      \                              struct ndpi_flow_struct* flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: search_hamachi_tcp
      Src: /src/ndpi/src/lib/protocols/hamachi.c:162,1
    - Dst: search_hamachi_udp
      Src: /src/ndpi/src/lib/protocols/hamachi.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 7
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: ndpi_search_hamachi
    functionSourceFile: /src/ndpi/src/lib/protocols/hamachi.c
    functionUses: 0
    functionsReached:
    - search_hamachi_tcp
    - search_hamachi_udp
    linkageType: ''
    returnType: void
    signature: void ndpi_search_hamachi(struct ndpi_detection_module_struct* ndpi_struct,
      struct ndpi_flow_struct* flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/hamachi.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: init_hamachi_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/hamachi.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_hamachi_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/nfs.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: ndpi_int_nfs_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/nfs.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_nfs_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t*ndpi_struct,
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/nfs.c:44,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/nfs.c:53,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nfs.c:56,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/nfs.c:56,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/nfs.c:59,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nfs.c:61,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/nfs.c:64,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nfs.c:66,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/nfs.c:66,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/nfs.c:69,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nfs.c:71,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/nfs.c:71,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nfs.c:72,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/nfs.c:72,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nfs.c:73,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/nfs.c:73,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/nfs.c:76,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/nfs.c:78,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nfs.c:78,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/nfs.c:81,1
    - Dst: ndpi_int_nfs_add_connection
      Src: /src/ndpi/src/lib/protocols/nfs.c:83,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/nfs.c:87,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 88
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 88
    functionName: ndpi_search_nfs
    functionSourceFile: /src/ndpi/src/lib/protocols/nfs.c
    functionUses: 0
    functionsReached:
    - ndpi_int_nfs_add_connection
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - htonl
    - NDPI_LOG_INFO
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_nfs(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/nfs.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: init_nfs_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/nfs.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_nfs_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/crynet.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/crynet.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_crynet_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/crynet.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_crynet_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                           struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/crynet.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/crynet.c:48,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/crynet.c:54,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/crynet.c:61,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/crynet.c:61,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/crynet.c:63,1
    - Dst: ndpi_int_crynet_add_connection
      Src: /src/ndpi/src/lib/protocols/crynet.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: ndpi_search_crynet
    functionSourceFile: /src/ndpi/src/lib/protocols/crynet.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - ndpi_int_crynet_add_connection
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_crynet(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/crynet.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: init_crynet_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/crynet.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_crynet_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/nano.c:43,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/nano.c:45,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/nano.c:51,1
    - Dst: mining_make_lru_cache_key
      Src: /src/ndpi/src/lib/protocols/nano.c:51,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/nano.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: ndpi_int_nano_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/nano.c
    functionUses: 0
    functionsReached:
    - ndpi_lru_add_to_cache
    - NDPI_LOG_INFO
    - mining_make_lru_cache_key
    - ndpi_get_current_time
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_nano_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                         struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/nano.c:60,1
    - Dst: ndpi_int_nano_add_connection
      Src: /src/ndpi/src/lib/protocols/nano.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/nano.c:79,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 56
    functionDepth: 6
    functionLinenumber: 56
    functionLinenumberEnd: 80
    functionName: ndpi_search_nano
    functionSourceFile: /src/ndpi/src/lib/protocols/nano.c
    functionUses: 0
    functionsReached:
    - ndpi_int_nano_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: void ndpi_search_nano(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/nano.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: init_nano_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/nano.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_nano_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_seen_flow_beginning
      Src: /src/ndpi/src/lib/protocols/hcl_notes.c:39,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/hcl_notes.c:43,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/hcl_notes.c:44,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hcl_notes.c:45,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/hcl_notes.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 53
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 53
    functionName: ndpi_check_hcl_notes
    functionSourceFile: /src/ndpi/src/lib/protocols/hcl_notes.c
    functionUses: 0
    functionsReached:
    - ndpi_seen_flow_beginning
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_hcl_notes(struct ndpi_detection_module_struct *ndpi_struct,
      \n\t\t\t\t   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/hcl_notes.c:57,1
    - Dst: ndpi_check_hcl_notes
      Src: /src/ndpi/src/lib/protocols/hcl_notes.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 6
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: ndpi_search_hcl_notes
    functionSourceFile: /src/ndpi/src/lib/protocols/hcl_notes.c
    functionUses: 0
    functionsReached:
    - ndpi_check_hcl_notes
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_hcl_notes(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/hcl_notes.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: init_hcl_notes_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/hcl_notes.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_hcl_notes_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: ndpi_int_profinet_io_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/profinet_io.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_profinet_io_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                                struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:46,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:58,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:58,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:59,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:59,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:60,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:60,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:62,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:62,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:63,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:63,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:64,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:64,1
    - Dst: ndpi_int_profinet_io_add_connection
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:70,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 76
    functionName: ndpi_search_profinet_io
    functionSourceFile: /src/ndpi/src/lib/protocols/profinet_io.c
    functionUses: 0
    functionsReached:
    - ntohs
    - le16toh
    - get_u_int16_t
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - le32toh
    - ndpi_int_profinet_io_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_profinet_io(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/profinet_io.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: init_profinet_io_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/profinet_io.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_profinet_io_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:35,1
    - Dst: ndpi_set_detected_protocol_keeping_master
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ndpi_int_mpegdash_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/mpegdash.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol_keeping_master
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_mpegdash_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                             struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:45,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:52,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:59,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:66,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:67,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:68,1
    - Dst: ndpi_int_mpegdash_add_connection
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:70,1
    - Dst: LINE_STARTS
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:76,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:77,1
    - Dst: LINE_STARTS
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:78,1
    - Dst: ndpi_int_mpegdash_add_connection
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:80,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:86,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 88
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 88
    functionName: ndpi_search_mpegdash_http
    functionSourceFile: /src/ndpi/src/lib/protocols/mpegdash.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - LINE_STARTS
    - ndpi_int_mpegdash_add_connection
    - ndpi_parse_packet_line_info
    - LINE_ENDS
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_mpegdash_http(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                      struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mpegdash.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: init_mpegdash_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mpegdash.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mpegdash_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/checkmk.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ndpi_int_checkmk_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/checkmk.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_checkmk_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/checkmk.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/checkmk.c:55,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/checkmk.c:64,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/checkmk.c:66,1
    - Dst: ndpi_int_checkmk_add_connection
      Src: /src/ndpi/src/lib/protocols/checkmk.c:67,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/checkmk.c:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 73
    functionName: ndpi_search_checkmk
    functionSourceFile: /src/ndpi/src/lib/protocols/checkmk.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ndpi_int_checkmk_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_checkmk(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\tstruct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/checkmk.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: init_checkmk_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/checkmk.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_checkmk_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:45,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:45,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:46,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:46,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:47,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:47,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:51,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:57,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:58,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:59,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:64,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 66
    functionName: ndpi_check_radius
    functionSourceFile: /src/ndpi/src/lib/protocols/radius_proto.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_check_radius(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:70,1
    - Dst: ndpi_check_radius
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: ndpi_search_radius
    functionSourceFile: /src/ndpi/src/lib/protocols/radius_proto.c
    functionUses: 0
    functionsReached:
    - ndpi_check_radius
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_radius(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/radius_proto.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: init_radius_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/radius_proto.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_radius_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/among_us.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: ndpi_int_among_us_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/among_us.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_among_us_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                             struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/among_us.c:41,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/among_us.c:42,1
    - Dst: ndpi_int_among_us_add_connection
      Src: /src/ndpi/src/lib/protocols/among_us.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/among_us.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: ndpi_search_among_us
    functionSourceFile: /src/ndpi/src/lib/protocols/among_us.c
    functionUses: 0
    functionsReached:
    - ntohl
    - ndpi_int_among_us_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_among_us(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                         struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/among_us.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: init_among_us_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/among_us.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_among_us_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/monero.c:34,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/monero.c:36,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/monero.c:42,1
    - Dst: mining_make_lru_cache_key
      Src: /src/ndpi/src/lib/protocols/monero.c:43,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/monero.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: ndpi_int_monero_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/monero.c
    functionUses: 0
    functionsReached:
    - ndpi_lru_add_to_cache
    - NDPI_LOG_INFO
    - mining_make_lru_cache_key
    - ndpi_get_current_time
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_monero_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                           struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/monero.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/monero.c:58,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/monero.c:62,1
    - Dst: ndpi_htonll
      Src: /src/ndpi/src/lib/protocols/monero.c:62,1
    - Dst: ndpi_int_monero_add_connection
      Src: /src/ndpi/src/lib/protocols/monero.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/monero.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 69
    functionName: ndpi_search_monero
    functionSourceFile: /src/ndpi/src/lib/protocols/monero.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_htonll
    - ndpi_int_monero_add_connection
    - get_u_int64_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_monero(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/monero.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: init_monero_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/monero.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_monero_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - flow
    - msg
    - buf
    - buf_len
    argTypes:
    - struct ndpi_flow_struct*
    - char*
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: forge_attempt_msg
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * forge_attempt_msg(struct ndpi_flow_struct *flow, char *msg,
      char *buf, u_int buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:72,1
    - Dst: forge_attempt_msg
      Src: /src/ndpi/src/lib/protocols/http.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - msg
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: ndpi_set_binary_data_transfer
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - forge_attempt_msg
    linkageType: ''
    returnType: void
    signature: "void ndpi_set_binary_data_transfer(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow,\n\t\t\t\t\t  char *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/http.c:85,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/http.c:86,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/http.c:87,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/http.c:88,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:94,1
    - Dst: forge_attempt_msg
      Src: /src/ndpi/src/lib/protocols/http.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - msg
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: ndpi_set_binary_application_transfer
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - forge_attempt_msg
    - ends_with
    linkageType: ''
    returnType: void
    signature: "void ndpi_set_binary_application_transfer(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t\t struct ndpi_flow_struct *flow,\n\t\t\t\t\t\t char
      *msg)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/http.c:128,1
    - Dst: ndpi_set_binary_application_transfer
      Src: /src/ndpi/src/lib/protocols/http.c:133,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 134
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 134
    functionName: ndpi_analyze_content_signature
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ndpi_set_binary_application_transfer
    linkageType: ''
    returnType: void
    signature: "void ndpi_analyze_content_signature(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_http_tcp
      Src: /src/ndpi/src/lib/protocols/http.c:144,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/http.c:147,1
    - Dst: switch_extra_dissection_to_tls_obfuscated_heur
      Src: /src/ndpi/src/lib/protocols/http.c:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 168
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 168
    functionName: ndpi_search_http_tcp_again
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_search_http_tcp
    - printf
    - switch_extra_dissection_to_tls_obfuscated_heur
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_http_tcp_again(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/protocols/http.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: ndpi_http_is_print
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_isprint
    linkageType: ''
    returnType: int
    signature: int ndpi_http_is_print(char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/http.c:185,1
    - Dst: ndpi_http_is_print
      Src: /src/ndpi/src/lib/protocols/http.c:190,1
    - Dst: ndpi_http_is_print
      Src: /src/ndpi/src/lib/protocols/http.c:190,1
    - Dst: ndpi_http_is_print
      Src: /src/ndpi/src/lib/protocols/http.c:191,1
    - Dst: ndpi_http_is_print
      Src: /src/ndpi/src/lib/protocols/http.c:191,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:202,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:205,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:207,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:209,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - content
    - content_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 214
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 214
    functionName: ndpi_http_check_human_redeable_content
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_http_is_print
    - NDPI_LOG_DBG
    - is_flowrisk_info_enabled
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void ndpi_http_check_human_redeable_content(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t\t   struct ndpi_flow_struct *flow,\n\t\t\t\t\t\t   const
      u_int8_t *content, u_int16_t content_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/http.c:221,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/http.c:223,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/http.c:224,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/http.c:232,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/http.c:233,1
    - Dst: ndpi_http_check_human_redeable_content
      Src: /src/ndpi/src/lib/protocols/http.c:242,1
    - Dst: ndpi_entropy
      Src: /src/ndpi/src/lib/protocols/http.c:244,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:251,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:253,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:255,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:262,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/http.c:266,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 271
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 271
    functionName: ndpi_validate_http_content
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_set_risk
    - ndpi_isset_risk
    - NDPI_LOG_DBG
    - ndpi_strnstr
    - ndpi_entropy
    - ndpi_http_check_human_redeable_content
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void ndpi_validate_http_content(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t       struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:287,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:305,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/http.c:309,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:311,1
    - Dst: ndpi_set_binary_data_transfer
      Src: /src/ndpi/src/lib/protocols/http.c:312,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:333,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:336,1
    - Dst: ndpi_set_binary_application_transfer
      Src: /src/ndpi/src/lib/protocols/http.c:338,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/http.c:339,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:353,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/http.c:361,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:363,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/http.c:370,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:373,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/http.c:380,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:383,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/http.c:396,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:399,1
    - Dst: ndpi_set_binary_application_transfer
      Src: /src/ndpi/src/lib/protocols/http.c:401,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/http.c:402,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:408,1
    - Dst: ndpi_set_binary_data_transfer
      Src: /src/ndpi/src/lib/protocols/http.c:410,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:418,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/http.c:419,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:424,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/http.c:425,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 116
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 432
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 432
    functionName: ndpi_http_check_content
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_min
    - memcmp
    - ndpi_malloc
    - strncpy
    - strncasecmp
    - NDPI_LOG_INFO
    - ndpi_set_binary_data_transfer
    - snprintf
    - ndpi_set_binary_application_transfer
    linkageType: ''
    returnType: ndpi_protocol_category_t
    signature: "ndpi_protocol_category_t ndpi_http_check_content(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t\t\tstruct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/http.c:440,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:448,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - master_protocol
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 455
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 455
    functionName: ndpi_int_http_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    - printf
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_http_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t struct ndpi_flow_struct *flow,\n\t\t\t\t\t u_int16_t
      master_protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:460,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:461,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:462,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:463,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:464,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:465,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:466,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:467,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:468,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/http.c:474,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - flow
    - ua
    argTypes:
    - struct ndpi_flow_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 475
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 475
    functionName: setHttpUserAgent
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_strdup
    - strcmp
    linkageType: ''
    returnType: void
    signature: void setHttpUserAgent(struct ndpi_flow_struct *flow, char *ua)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:486,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:498,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:499,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:500,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:508,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:509,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:510,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:515,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:516,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:517,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:518,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:519,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:525,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:536,1
    - Dst: ndpi_match_hostname_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:544,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/http.c:547,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/http.c:562,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/http.c:566,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:570,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:573,1
    - Dst: ndpi_match_host_subprotocol
      Src: /src/ndpi/src/lib/protocols/http.c:574,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/http.c:585,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/http.c:586,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:595,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:596,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:598,1
    - Dst: ookla_add_to_cache
      Src: /src/ndpi/src/lib/protocols/http.c:599,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:604,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:605,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/http.c:610,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:611,1
    - Dst: ookla_add_to_cache
      Src: /src/ndpi/src/lib/protocols/http.c:612,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:618,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:619,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:620,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:621,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:622,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/http.c:627,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:635,1
    - Dst: ookla_add_to_cache
      Src: /src/ndpi/src/lib/protocols/http.c:636,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:640,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:641,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:645,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:646,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:650,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:651,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:655,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:656,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/protocols/http.c:671,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/protocols/http.c:675,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:680,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:680,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/http.c:681,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:682,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:682,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/http.c:683,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:684,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/protocols/http.c:687,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:690,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 116
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - hostname_just_set
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - int
    constantsTouched: []
    func_position:
      end: 694
      start: 479
    functionDepth: 6
    functionLinenumber: 479
    functionLinenumberEnd: 694
    functionName: ndpi_http_parse_subprotocol
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_set_risk
    - ookla_add_to_cache
    - NDPI_LOG_DBG2
    - ndpi_free
    - memcmp
    - ndpi_unset_risk
    - ndpi_isset_risk
    - ndpi_strdup
    - ndpi_strnstr
    - ndpi_match_host_subprotocol
    - strstr
    - ndpi_match_hostname_protocol
    - ends_with
    - strcmp
    - ndpi_set_detected_protocol
    - strlen
    - strtok_r
    linkageType: ''
    returnType: void
    signature: "void ndpi_http_parse_subprotocol(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\tstruct ndpi_flow_struct *flow,\n\t\t\t\t\tint hostname_just_set)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isalpha
      Src: /src/ndpi/src/lib/protocols/http.c:716,1
    - Dst: isupper
      Src: /src/ndpi/src/lib/protocols/http.c:720,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:730,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:733,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:734,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:736,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:742,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/http.c:743,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:745,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:748,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:749,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:751,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:755,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:759,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:762,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:763,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:765,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:772,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:773,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:777,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/http.c:778,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/http.c:779,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:781,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:789,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:790,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/src/lib/protocols/http.c:791,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/src/lib/protocols/http.c:792,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:794,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:797,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:799,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:801,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 57
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - ua
    - ua_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 804
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 804
    functionName: ndpi_check_user_agent
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_set_risk
    - ndpi_isalpha
    - is_flowrisk_info_enabled
    - strstr
    - snprintf
    - strchr
    - isupper
    - ndpi_strncasestr
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_user_agent(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow,\n\t\t\t\t  char
      const *ua, size_t ua_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/http.c:818,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:820,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:823,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/http.c:830,1
    - Dst: strsep
      Src: /src/ndpi/src/lib/protocols/http.c:833,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:835,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:836,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:837,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:838,1
    - Dst: strsep
      Src: /src/ndpi/src/lib/protocols/http.c:840,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:844,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:845,1
    - Dst: strsep
      Src: /src/ndpi/src/lib/protocols/http.c:846,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:849,1
    - Dst: strsep
      Src: /src/ndpi/src/lib/protocols/http.c:850,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:854,1
    - Dst: strsep
      Src: /src/ndpi/src/lib/protocols/http.c:856,1
    - Dst: setHttpUserAgent
      Src: /src/ndpi/src/lib/protocols/http.c:864,1
    - Dst: ndpi_user_agent_set
      Src: /src/ndpi/src/lib/protocols/http.c:870,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:871,1
    - Dst: ndpi_check_user_agent
      Src: /src/ndpi/src/lib/protocols/http.c:872,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:874,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:877,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 45
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - ua_ptr
    - ua_ptr_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 879
      start: 808
    functionDepth: 4
    functionLinenumber: 808
    functionLinenumberEnd: 879
    functionName: http_process_user_agent
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_min
    - NDPI_LOG_DBG2
    - ndpi_unset_risk
    - ndpi_user_agent_set
    - strncpy
    - strcmp
    - ndpi_check_user_agent
    - strsep
    - strchr
    - setHttpUserAgent
    linkageType: ''
    returnType: void
    signature: "void http_process_user_agent(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow,\n                                    const
      u_int8_t *ua_ptr, u_int16_t ua_ptr_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:889,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/http.c:892,1
    - Dst: inet_addr
      Src: /src/ndpi/src/lib/protocols/http.c:895,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/http.c:896,1
    - Dst: inet_ntoa
      Src: /src/ndpi/src/lib/protocols/http.c:896,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:897,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:900,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:901,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:903,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - ip
    - ip_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 906
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 906
    functionName: ndpi_check_numeric_ip
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - strncpy
    - inet_ntoa
    - is_flowrisk_info_enabled
    - inet_addr
    - strcmp
    - snprintf
    - strchr
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_numeric_ip(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow,\n\t\t\t\t  char
      *ip, u_int ip_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/http.c:916,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:918,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:919,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:921,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:922,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:924,1
    - Dst: ndpi_validate_url
      Src: /src/ndpi/src/lib/protocols/http.c:926,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:930,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - url
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 931
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 931
    functionName: ndpi_check_http_url
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_set_risk
    - ndpi_validate_url
    - strstr
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_http_url(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow,\n\t\t\t\tchar
      *url)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:945,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:946,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/protocols/http.c:951,1
    - Dst: sscanf
      Src: /src/ndpi/src/lib/protocols/http.c:954,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:959,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:960,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:961,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:963,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:966,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:967,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:968,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:970,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/protocols/http.c:978,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:981,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:983,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - server
    - server_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 989
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 989
    functionName: ndpi_check_http_server
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_isprint
    - strncasecmp
    - is_flowrisk_info_enabled
    - ndpi_isdigit
    - snprintf
    - sscanf
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_http_server(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                  struct ndpi_flow_struct *flow,\n\t\t\t\t
      \  const char *server, u_int server_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/protocols/http.c:1008,1
    - Dst: ndpi_check_numeric_ip
      Src: /src/ndpi/src/lib/protocols/http.c:1010,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/http.c:1012,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:1017,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:1023,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:1024,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:1029,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:1033,1
    - Dst: ndpi_check_http_url
      Src: /src/ndpi/src/lib/protocols/http.c:1041,1
    - Dst: ndpi_http_str2method
      Src: /src/ndpi/src/lib/protocols/http.c:1046,1
    - Dst: ndpi_check_http_server
      Src: /src/ndpi/src/lib/protocols/http.c:1050,1
    - Dst: http_process_user_agent
      Src: /src/ndpi/src/lib/protocols/http.c:1053,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/http.c:1059,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:1061,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/http.c:1070,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/http.c:1077,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:1079,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1090,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/src/lib/protocols/http.c:1094,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/src/lib/protocols/http.c:1096,1
    - Dst: ndpi_base64_decode
      Src: /src/ndpi/src/lib/protocols/http.c:1102,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/http.c:1111,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/http.c:1113,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1116,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1119,1
    - Dst: ndpi_strndup
      Src: /src/ndpi/src/lib/protocols/http.c:1128,1
    - Dst: ndpi_strndup
      Src: /src/ndpi/src/lib/protocols/http.c:1132,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1135,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/http.c:1144,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:1146,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/http.c:1152,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/http.c:1160,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:1162,1
    - Dst: ndpi_http_check_content
      Src: /src/ndpi/src/lib/protocols/http.c:1166,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1175,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/http.c:1179,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/http.c:1181,1
    - Dst: ndpi_is_valid_hostname
      Src: /src/ndpi/src/lib/protocols/http.c:1187,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1191,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1192,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1193,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1195,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1200,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1201,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/http.c:1204,1
    - Dst: sscanf
      Src: /src/ndpi/src/lib/protocols/http.c:1207,1
    - Dst: inet_addr
      Src: /src/ndpi/src/lib/protocols/http.c:1210,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1211,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1214,1
    - Dst: ndpi_intoav4
      Src: /src/ndpi/src/lib/protocols/http.c:1215,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/http.c:1215,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1216,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1218,1
    - Dst: ndpi_http_parse_subprotocol
      Src: /src/ndpi/src/lib/protocols/http.c:1226,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/http.c:1228,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/src/lib/protocols/http.c:1229,1
    - Dst: ndpi_check_http_header
      Src: /src/ndpi/src/lib/protocols/http.c:1232,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 141
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1233
      start: 997
    functionDepth: 7
    functionLinenumber: 997
    functionLinenumberEnd: 1233
    functionName: check_content_type_and_change_protocol
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_hostname_sni_set
    - ndpi_check_http_server
    - ndpi_free
    - ndpi_http_parse_subprotocol
    - ndpi_is_valid_hostname
    - snprintf
    - strlen
    - ndpi_check_http_url
    - ndpi_set_risk
    - http_process_user_agent
    - NDPI_LOG_DBG2
    - ndpi_strndup
    - ndpi_strdup
    - ndpi_check_dga_name
    - ndpi_strnstr
    - is_flowrisk_info_enabled
    - ndpi_base64_decode
    - memcmp
    - ndpi_malloc
    - ndpi_http_str2method
    - inet_addr
    - ndpi_intoav4
    - ntohl
    - ndpi_http_check_content
    - strchr
    - sscanf
    - ndpi_strncasestr
    - ndpi_check_numeric_ip
    - strncpy
    - ndpi_isdigit
    - ndpi_check_http_header
    linkageType: ''
    returnType: void
    signature: "void check_content_type_and_change_protocol(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t\t   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 1240
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1240
    functionName: non_ctrl
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t non_ctrl(uint8_t c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1285,1
    - Dst: non_ctrl
      Src: /src/ndpi/src/lib/protocols/http.c:1286,1
    - Dst: non_ctrl
      Src: /src/ndpi/src/lib/protocols/http.c:1287,1
    - Dst: non_ctrl
      Src: /src/ndpi/src/lib/protocols/http.c:1288,1
    - Dst: non_ctrl
      Src: /src/ndpi/src/lib/protocols/http.c:1289,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/http.c:1293,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:1301,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1306,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 1311
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1311
    functionName: http_request_url_offset
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - strchr
    - non_ctrl
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t http_request_url_offset(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/ndpi/src/lib/protocols/http.c:1331,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:1334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - suspicious_headers
    - packet_line
    argTypes:
    - char*[]
    - struct ndpi_int_one_line_struct
    constantsTouched: []
    func_position:
      end: 1341
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1341
    functionName: is_a_suspicious_header
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - memchr
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int is_a_suspicious_header(const char* suspicious_headers[], struct
      ndpi_int_one_line_struct packet_line)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_a_suspicious_header
      Src: /src/ndpi/src/lib/protocols/http.c:1355,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1356,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1359,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1360,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1362,1
    - Dst: is_a_suspicious_header
      Src: /src/ndpi/src/lib/protocols/http.c:1368,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1369,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1372,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1373,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1375,1
    - Dst: is_a_suspicious_header
      Src: /src/ndpi/src/lib/protocols/http.c:1381,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1382,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1385,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1386,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1388,1
    - Dst: is_a_suspicious_header
      Src: /src/ndpi/src/lib/protocols/http.c:1394,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1395,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1398,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1399,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1401,1
    - Dst: is_a_suspicious_header
      Src: /src/ndpi/src/lib/protocols/http.c:1407,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1408,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1411,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1412,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1414,1
    - Dst: is_a_suspicious_header
      Src: /src/ndpi/src/lib/protocols/http.c:1420,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1421,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1424,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1425,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1427,1
    - Dst: is_a_suspicious_header
      Src: /src/ndpi/src/lib/protocols/http.c:1433,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1434,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1437,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1438,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1440,1
    - Dst: is_a_suspicious_header
      Src: /src/ndpi/src/lib/protocols/http.c:1446,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1447,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1450,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1451,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1453,1
    - Dst: is_a_suspicious_header
      Src: /src/ndpi/src/lib/protocols/http.c:1459,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/http.c:1460,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1463,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1464,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1466,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 104
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1474
      start: 1345
    functionDepth: 3
    functionLinenumber: 1345
    functionLinenumberEnd: 1474
    functionName: ndpi_check_http_header
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 1
    functionsReached:
    - is_flowrisk_info_enabled
    - is_a_suspicious_header
    - snprintf
    - ndpi_set_risk
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_http_header(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/http.c:1485,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/protocols/http.c:1488,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1489,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1496,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1497,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:1504,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http.c:1505,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/http.c:1510,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1511,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1516
      start: 1476
    functionDepth: 3
    functionLinenumber: 1476
    functionLinenumberEnd: 1516
    functionName: parse_response_code
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_set_risk
    - atoi
    - NDPI_LOG_DBG2
    - strncpy
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void parse_response_code(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\tstruct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: http_request_url_offset
      Src: /src/ndpi/src/lib/protocols/http.c:1522,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:1525,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/http.c:1526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 1529
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1529
    functionName: is_request
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - http_request_url_offset
    - strncasecmp
    - ndpi_min
    linkageType: ''
    returnType: int
    signature: int is_request(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:1534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 1537
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1537
    functionName: is_response
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int is_response(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/http.c:1545,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:1551,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1552,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:1556,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/http.c:1569,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:1575,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/http.c:1579,1
    - Dst: ndpi_int_http_add_connection
      Src: /src/ndpi/src/lib/protocols/http.c:1583,1
    - Dst: check_content_type_and_change_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:1584,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1588,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - filename_start
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1590
      start: 1539
    functionDepth: 6
    functionLinenumber: 1539
    functionLinenumberEnd: 1590
    functionName: process_request
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_int_http_add_connection
    - NDPI_LOG_DBG2
    - memcmp
    - strncasecmp
    - check_content_type_and_change_protocol
    - ndpi_parse_packet_line_info
    linkageType: ''
    returnType: void
    signature: "void process_request(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct *flow,\n\t\t\t    u_int16_t filename_start)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/http.c:1595,1
    - Dst: parse_response_code
      Src: /src/ndpi/src/lib/protocols/http.c:1596,1
    - Dst: check_content_type_and_change_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:1597,1
    - Dst: ndpi_validate_http_content
      Src: /src/ndpi/src/lib/protocols/http.c:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1600
      start: 1592
    functionDepth: 5
    functionLinenumber: 1592
    functionLinenumberEnd: 1600
    functionName: process_response
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 0
    functionsReached:
    - check_content_type_and_change_protocol
    - ndpi_parse_packet_line_info
    - parse_response_code
    - ndpi_validate_http_content
    linkageType: ''
    returnType: void
    signature: "void process_response(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1605,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1615,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1619,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1623,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1627,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1631,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1635,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1639,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1643,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1647,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1651,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1655,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/http.c:1659,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1666,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1667,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1668,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1669,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1670,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1671,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1672,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1673,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1674,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1675,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1676,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1677,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/http.c:1678,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1679
      start: 1602
    functionDepth: 3
    functionLinenumber: 1602
    functionLinenumberEnd: 1679
    functionName: reset
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 10
    functionsReached:
    - ndpi_unset_risk
    - ndpi_free
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: void
    signature: "void reset(struct ndpi_detection_module_struct *ndpi_struct,\n                  struct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/http.c:1686,1
    - Dst: is_request
      Src: /src/ndpi/src/lib/protocols/http.c:1688,1
    - Dst: is_response
      Src: /src/ndpi/src/lib/protocols/http.c:1688,1
    - Dst: is_request
      Src: /src/ndpi/src/lib/protocols/http.c:1691,1
    - Dst: is_response
      Src: /src/ndpi/src/lib/protocols/http.c:1694,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1695,1
    - Dst: ndpi_int_http_add_connection
      Src: /src/ndpi/src/lib/protocols/http.c:1705,1
    - Dst: process_response
      Src: /src/ndpi/src/lib/protocols/http.c:1706,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1712,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/http.c:1713,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1716,1
    - Dst: process_request
      Src: /src/ndpi/src/lib/protocols/http.c:1718,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1730,1
    - Dst: is_request
      Src: /src/ndpi/src/lib/protocols/http.c:1731,1
    - Dst: reset
      Src: /src/ndpi/src/lib/protocols/http.c:1740,1
    - Dst: process_request
      Src: /src/ndpi/src/lib/protocols/http.c:1741,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/http.c:1744,1
    - Dst: check_content_type_and_change_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:1745,1
    - Dst: is_response
      Src: /src/ndpi/src/lib/protocols/http.c:1747,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1748,1
    - Dst: process_response
      Src: /src/ndpi/src/lib/protocols/http.c:1750,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1754,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1763,1
    - Dst: is_response
      Src: /src/ndpi/src/lib/protocols/http.c:1764,1
    - Dst: reset
      Src: /src/ndpi/src/lib/protocols/http.c:1768,1
    - Dst: process_response
      Src: /src/ndpi/src/lib/protocols/http.c:1769,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/http.c:1772,1
    - Dst: check_content_type_and_change_protocol
      Src: /src/ndpi/src/lib/protocols/http.c:1773,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/http.c:1777,1
    - Dst: reset
      Src: /src/ndpi/src/lib/protocols/http.c:1779,1
    - Dst: ndpi_check_http_tcp
      Src: /src/ndpi/src/lib/protocols/http.c:1781,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1783
      start: 1681
    functionDepth: 7
    functionLinenumber: 1681
    functionLinenumberEnd: 1783
    functionName: ndpi_check_http_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 1
    functionsReached:
    - ndpi_check_http_tcp
    - ndpi_int_http_add_connection
    - NDPI_LOG_DBG2
    - is_response
    - NDPI_EXCLUDE_DISSECTOR
    - process_request
    - is_request
    - NDPI_LOG_DBG
    - process_response
    - check_content_type_and_change_protocol
    - ndpi_parse_packet_line_info
    - reset
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_http_tcp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\tstruct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/http.c:1791,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/http.c:1795,1
    - Dst: ndpi_check_http_tcp
      Src: /src/ndpi/src/lib/protocols/http.c:1796,1
    - Dst: ndpi_analyze_content_signature
      Src: /src/ndpi/src/lib/protocols/http.c:1814,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1816
      start: 1787
    functionDepth: 8
    functionLinenumber: 1787
    functionLinenumberEnd: 1816
    functionName: ndpi_search_http_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 1
    functionsReached:
    - ndpi_analyze_content_signature
    - ndpi_check_http_tcp
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_http_tcp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/http.c:1819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 1823
      start: 1818
    functionDepth: 3
    functionLinenumber: 1818
    functionLinenumberEnd: 1823
    functionName: init_http_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/http.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_http_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/nintendo.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: ndpi_int_nintendo_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/nintendo.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_nintendo_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t     struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/nintendo.c:46,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/nintendo.c:47,1
    - Dst: ndpi_int_nintendo_add_connection
      Src: /src/ndpi/src/lib/protocols/nintendo.c:48,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/nintendo.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 55
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 55
    functionName: ndpi_search_nintendo
    functionSourceFile: /src/ndpi/src/lib/protocols/nintendo.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - memcmp
    - ndpi_int_nintendo_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: void ndpi_search_nintendo(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/nintendo.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: init_nintendo_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/nintendo.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_nintendo_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/lagofast.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/lagofast.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: ndpi_int_lagofast_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/lagofast.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_lagofast_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                             struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/lagofast.c:43,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/lagofast.c:45,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lagofast.c:50,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/lagofast.c:50,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/lagofast.c:51,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/lagofast.c:58,1
    - Dst: ndpi_int_lagofast_add_connection
      Src: /src/ndpi/src/lib/protocols/lagofast.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 63
    functionName: ndpi_search_lagofast
    functionSourceFile: /src/ndpi/src/lib/protocols/lagofast.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - htonl
    - ndpi_int_lagofast_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_lagofast(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/lagofast.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: init_lagofast_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/lagofast.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_lagofast_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: ndpi_int_tuya_lp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/tuya_lp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_tuya_lp_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                                  struct
      ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:47,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:51,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:56,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:58,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:63,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:63,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:74,1
    - Dst: ndpi_int_tuya_lp_add_connection
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:78,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 79
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 79
    functionName: ndpi_search_tuya_lp
    functionSourceFile: /src/ndpi/src/lib/protocols/tuya_lp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_tuya_lp_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_tuya_lp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/tuya_lp.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: init_tuya_lp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/tuya_lp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_tuya_lp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/raknet.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/raknet.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: ndpi_int_raknet_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/raknet.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_raknet_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                           struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - packet
    - offset
    argTypes:
    - struct ndpi_packet_struct*
    - size_t
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: raknet_dissect_ip
    functionSourceFile: /src/ndpi/src/lib/protocols/raknet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t raknet_dissect_ip(struct ndpi_packet_struct * const packet,
      size_t offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/raknet.c:60,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/raknet.c:61,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/raknet.c:62,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/raknet.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: is_custom_version
    functionSourceFile: /src/ndpi/src/lib/protocols/raknet.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_custom_version(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/raknet.c:76,1
    - Dst: ndpi_int_raknet_add_connection
      Src: /src/ndpi/src/lib/protocols/raknet.c:80,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/raknet.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: exclude_proto
    functionSourceFile: /src/ndpi/src/lib/protocols/raknet.c
    functionUses: 0
    functionsReached:
    - ndpi_int_raknet_add_connection
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void exclude_proto(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                         struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/raknet.c:93,1
    - Dst: is_custom_version
      Src: /src/ndpi/src/lib/protocols/raknet.c:106,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:111,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:122,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:132,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:141,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:151,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:161,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/raknet.c:166,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/raknet.c:166,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:169,1
    - Dst: raknet_dissect_ip
      Src: /src/ndpi/src/lib/protocols/raknet.c:177,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:182,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/raknet.c:187,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/raknet.c:187,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:190,1
    - Dst: raknet_dissect_ip
      Src: /src/ndpi/src/lib/protocols/raknet.c:197,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:202,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/raknet.c:207,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/raknet.c:207,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:210,1
    - Dst: raknet_dissect_ip
      Src: /src/ndpi/src/lib/protocols/raknet.c:221,1
    - Dst: raknet_dissect_ip
      Src: /src/ndpi/src/lib/protocols/raknet.c:228,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:233,1
    - Dst: get_u_int8_t
      Src: /src/ndpi/src/lib/protocols/raknet.c:258,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:261,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/raknet.c:265,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/raknet.c:265,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:269,1
    - Dst: ndpi_int_raknet_add_connection
      Src: /src/ndpi/src/lib/protocols/raknet.c:299,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:301,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:309,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:323,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:331,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/raknet.c:336,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/raknet.c:336,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:340,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/raknet.c:349,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/raknet.c:349,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:360,1
    - Dst: ndpi_int_raknet_add_connection
      Src: /src/ndpi/src/lib/protocols/raknet.c:370,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:372,1
    - Dst: exclude_proto
      Src: /src/ndpi/src/lib/protocols/raknet.c:382,1
    - Dst: ndpi_int_raknet_add_connection
      Src: /src/ndpi/src/lib/protocols/raknet.c:391,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 197
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 392
      start: 87
    functionDepth: 7
    functionLinenumber: 87
    functionLinenumberEnd: 392
    functionName: ndpi_search_raknet
    functionSourceFile: /src/ndpi/src/lib/protocols/raknet.c
    functionUses: 0
    functionsReached:
    - ndpi_int_raknet_add_connection
    - ntohs
    - get_u_int16_t
    - is_custom_version
    - NDPI_LOG_DBG
    - exclude_proto
    - raknet_dissect_ip
    - get_u_int8_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_raknet(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/raknet.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 400
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 400
    functionName: init_raknet_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/raknet.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_raknet_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/someip.c:81,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/someip.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: ndpi_int_someip_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/someip.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_someip_add_connection (struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/someip.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: someip_data_cover_32
    functionSourceFile: /src/ndpi/src/lib/protocols/someip.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t someip_data_cover_32(const u_int8_t *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/someip.c:102,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/someip.c:104,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/someip.c:110,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/someip.c:113,1
    - Dst: someip_data_cover_32
      Src: /src/ndpi/src/lib/protocols/someip.c:113,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/someip.c:114,1
    - Dst: someip_data_cover_32
      Src: /src/ndpi/src/lib/protocols/someip.c:114,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/someip.c:116,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/someip.c:122,1
    - Dst: someip_data_cover_32
      Src: /src/ndpi/src/lib/protocols/someip.c:122,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/someip.c:124,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/someip.c:125,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/someip.c:130,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/someip.c:132,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/someip.c:133,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/someip.c:141,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/someip.c:146,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/someip.c:147,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/someip.c:152,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/someip.c:154,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/someip.c:155,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/someip.c:162,1
    - Dst: ndpi_int_someip_add_connection
      Src: /src/ndpi/src/lib/protocols/someip.c:163,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/someip.c:167,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/someip.c:168,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/someip.c:176,1
    - Dst: ndpi_int_someip_add_connection
      Src: /src/ndpi/src/lib/protocols/someip.c:177,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/someip.c:181,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/someip.c:182,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/someip.c:188,1
    - Dst: ndpi_int_someip_add_connection
      Src: /src/ndpi/src/lib/protocols/someip.c:191,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 192
      start: 96
    functionDepth: 6
    functionLinenumber: 96
    functionLinenumberEnd: 192
    functionName: ndpi_search_someip
    functionSourceFile: /src/ndpi/src/lib/protocols/someip.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_someip_add_connection
    - ntohl
    - someip_data_cover_32
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_someip(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/someip.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: init_someip_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/someip.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_someip_dissector (struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/oracle.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: ndpi_int_oracle_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/oracle.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_oracle_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \  *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/oracle.c:40,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/oracle.c:43,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/oracle.c:44,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/oracle.c:49,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/oracle.c:49,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/oracle.c:54,1
    - Dst: ndpi_int_oracle_add_connection
      Src: /src/ndpi/src/lib/protocols/oracle.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/oracle.c:59,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: ndpi_search_oracle
    functionSourceFile: /src/ndpi/src/lib/protocols/oracle.c
    functionUses: 0
    functionsReached:
    - ndpi_int_oracle_add_connection
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    linkageType: ''
    returnType: void
    signature: void ndpi_search_oracle(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/oracle.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: init_oracle_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/oracle.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_oracle_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/yojimbo.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/yojimbo.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: ndpi_int_yojimbo_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/yojimbo.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_yojimbo_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                            struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/yojimbo.c:43,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/yojimbo.c:49,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/yojimbo.c:54,1
    - Dst: ndpi_htonll
      Src: /src/ndpi/src/lib/protocols/yojimbo.c:54,1
    - Dst: ndpi_int_yojimbo_add_connection
      Src: /src/ndpi/src/lib/protocols/yojimbo.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/yojimbo.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 61
    functionName: ndpi_search_yojimbo
    functionSourceFile: /src/ndpi/src/lib/protocols/yojimbo.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_yojimbo_add_connection
    - ndpi_htonll
    - get_u_int64_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_yojimbo(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/yojimbo.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: init_yojimbo_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/yojimbo.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_yojimbo_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ceph.c:37,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/ceph.c:42,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/ceph.c:43,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/ceph.c:43,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ceph.c:45,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ceph.c:46,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ceph.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: ndpi_search_ceph
    functionSourceFile: /src/ndpi/src/lib/protocols/ceph.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ceph(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ceph.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: init_ceph_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ceph.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ceph_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/cnp-ip.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/cnp-ip.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: ndpi_int_cnp_ip_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/cnp-ip.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_cnp_ip_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                           struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/cnp-ip.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cnp-ip.c:47,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/cnp-ip.c:47,1
    - Dst: ndpi_int_cnp_ip_add_connection
      Src: /src/ndpi/src/lib/protocols/cnp-ip.c:50,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/cnp-ip.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: ndpi_search_cnp_ip
    functionSourceFile: /src/ndpi/src/lib/protocols/cnp-ip.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - ndpi_int_cnp_ip_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_cnp_ip(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/cnp-ip.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: init_cnp_ip_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/cnp-ip.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_cnp_ip_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/vxlan.c:44,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/vxlan.c:47,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/vxlan.c:50,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/vxlan.c:51,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/vxlan.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 58
    functionName: ndpi_check_vxlan
    functionSourceFile: /src/ndpi/src/lib/protocols/vxlan.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - ntohs
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_check_vxlan(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/vxlan.c:62,1
    - Dst: ndpi_check_vxlan
      Src: /src/ndpi/src/lib/protocols/vxlan.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 6
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: ndpi_search_vxlan
    functionSourceFile: /src/ndpi/src/lib/protocols/vxlan.c
    functionUses: 0
    functionsReached:
    - ndpi_check_vxlan
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_vxlan(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/vxlan.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: init_vxlan_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/vxlan.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_vxlan_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/epicgames.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/epicgames.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_epicgames_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/epicgames.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_epicgames_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                              struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/epicgames.c:44,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/epicgames.c:49,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/epicgames.c:49,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/epicgames.c:50,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/epicgames.c:51,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/epicgames.c:52,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/epicgames.c:54,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/epicgames.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/epicgames.c:57,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/epicgames.c:62,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/epicgames.c:62,1
    - Dst: ndpi_int_epicgames_add_connection
      Src: /src/ndpi/src/lib/protocols/epicgames.c:63,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/epicgames.c:66,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/epicgames.c:72,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 75
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 75
    functionName: ndpi_search_epicgames
    functionSourceFile: /src/ndpi/src/lib/protocols/epicgames.c
    functionUses: 0
    functionsReached:
    - ndpi_int_epicgames_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int64_t
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_epicgames(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/epicgames.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: init_epicgames_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/epicgames.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_epicgames_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/paltalk.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/paltalk.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ndpi_int_paltalk_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/paltalk.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_paltalk_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                            struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/paltalk.c:44,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/paltalk.c:46,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/paltalk.c:46,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/paltalk.c:47,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/paltalk.c:47,1
    - Dst: ndpi_int_paltalk_add_connection
      Src: /src/ndpi/src/lib/protocols/paltalk.c:49,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/paltalk.c:53,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/paltalk.c:53,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/paltalk.c:54,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/paltalk.c:54,1
    - Dst: ndpi_int_paltalk_add_connection
      Src: /src/ndpi/src/lib/protocols/paltalk.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/paltalk.c:60,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 61
    functionName: ndpi_search_paltalk
    functionSourceFile: /src/ndpi/src/lib/protocols/paltalk.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - htonl
    - ndpi_int_paltalk_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_paltalk(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/paltalk.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: init_paltalk_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/paltalk.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_paltalk_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/h323.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/h323.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: ndpi_int_h323_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/h323.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_h323_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/h323.c:43,1
    - Dst: tpkt_verify_hdr
      Src: /src/ndpi/src/lib/protocols/h323.c:46,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/h323.c:49,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/h323.c:49,1
    - Dst: ndpi_int_h323_add_connection
      Src: /src/ndpi/src/lib/protocols/h323.c:50,1
    - Dst: ndpi_int_h323_add_connection
      Src: /src/ndpi/src/lib/protocols/h323.c:55,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/h323.c:59,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/h323.c:59,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/h323.c:64,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/h323.c:64,1
    - Dst: ndpi_int_h323_add_connection
      Src: /src/ndpi/src/lib/protocols/h323.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/h323.c:71,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 72
    functionName: ndpi_search_h323
    functionSourceFile: /src/ndpi/src/lib/protocols/h323.c
    functionUses: 0
    functionsReached:
    - tpkt_verify_hdr
    - ntohs
    - ndpi_int_h323_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_h323(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/h323.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: init_h323_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/h323.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_h323_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:54,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: ndpi_int_whatsapp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/whatsapp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_whatsapp_add_connection(struct ndpi_detection_module_struct
      * ndpi_struct,\n                                             struct ndpi_flow_struct
      * flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GET_SEQ_SIZE
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:65,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:73,1
    - Dst: GET_SEQ
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:73,1
    - Dst: GET_SEQ_SIZE
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:77,1
    - Dst: ndpi_int_whatsapp_add_connection
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - seq_id
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - enum whatsapp_sequence_id
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: ndpi_int_match_whatsapp_sequence
    functionSourceFile: /src/ndpi/src/lib/protocols/whatsapp.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ndpi_int_whatsapp_add_connection
    - GET_SEQ_SIZE
    - GET_SEQ
    linkageType: ''
    returnType: int
    signature: "int ndpi_int_match_whatsapp_sequence(struct ndpi_detection_module_struct
      * ndpi_struct,\n                                            struct ndpi_flow_struct
      * flow,\n                                            enum whatsapp_sequence_id
      seq_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:92,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:96,1
    - Dst: GET_SEQ_SIZE
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:105,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:106,1
    - Dst: GET_SEQ
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:106,1
    - Dst: GET_SEQ_SIZE
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:106,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:108,1
    - Dst: ndpi_int_whatsapp_add_connection
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:109,1
    - Dst: ndpi_int_match_whatsapp_sequence
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:113,1
    - Dst: ndpi_int_match_whatsapp_sequence
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:114,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 120
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 120
    functionName: ndpi_search_whatsapp
    functionSourceFile: /src/ndpi/src/lib/protocols/whatsapp.c
    functionUses: 0
    functionsReached:
    - GET_SEQ
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_int_whatsapp_add_connection
    - ndpi_int_match_whatsapp_sequence
    - GET_SEQ_SIZE
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_whatsapp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/whatsapp.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: init_whatsapp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/whatsapp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_whatsapp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/kismet.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/kismet.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_kismet_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/kismet.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_kismet_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                           struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/kismet.c:44,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/kismet.c:46,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kismet.c:48,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/kismet.c:52,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/kismet.c:52,1
    - Dst: ndpi_int_kismet_add_connection
      Src: /src/ndpi/src/lib/protocols/kismet.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kismet.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: ndpi_search_kismet
    functionSourceFile: /src/ndpi/src/lib/protocols/kismet.c
    functionUses: 0
    functionsReached:
    - strncmp
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - ndpi_int_kismet_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_kismet(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/kismet.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: init_kismet_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/kismet.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_kismet_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/cpha.c:36,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/cpha.c:38,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/cpha.c:49,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/cpha.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: ndpi_search_cpha
    functionSourceFile: /src/ndpi/src/lib/protocols/cpha.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - htons
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_cpha(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/cpha.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: init_cpha_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/cpha.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_cpha_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/syslog.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ndpi_int_syslog_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/syslog.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_syslog_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \  *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/syslog.c:44,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/syslog.c:47,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/syslog.c:54,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/syslog.c:58,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/syslog.c:59,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/syslog.c:62,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/syslog.c:66,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/syslog.c:69,1
    - Dst: ndpi_isalnum
      Src: /src/ndpi/src/lib/protocols/syslog.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/syslog.c:82,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/syslog.c:94,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/syslog.c:99,1
    - Dst: ndpi_int_syslog_add_connection
      Src: /src/ndpi/src/lib/protocols/syslog.c:100,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/syslog.c:103,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 104
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 104
    functionName: ndpi_search_syslog
    functionSourceFile: /src/ndpi/src/lib/protocols/syslog.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG2
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_isalnum
    - ndpi_int_syslog_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_syslog(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/syslog.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: init_syslog_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/syslog.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_syslog_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/hl7.c:39,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/hl7.c:45,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/hl7.c:46,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/hl7.c:47,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/hl7.c:48,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/hl7.c:49,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/hl7.c:50,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/hl7.c:52,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hl7.c:53,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/hl7.c:61,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/hl7.c:61,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/hl7.c:63,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hl7.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/hl7.c:69,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 70
    functionName: ndpi_search_hl7
    functionSourceFile: /src/ndpi/src/lib/protocols/hl7.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - LINE_ENDS
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_hl7(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/hl7.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: init_hl7_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/hl7.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_hl7_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/pfcp.c:39,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/pfcp.c:42,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/pfcp.c:42,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/pfcp.c:49,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/pfcp.c:49,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/pfcp.c:51,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/pfcp.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/pfcp.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 60
    functionName: ndpi_search_pfcp
    functionSourceFile: /src/ndpi/src/lib/protocols/pfcp.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_pfcp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/pfcp.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: init_pfcp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/pfcp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_pfcp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/openvpn.c:69,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/openvpn.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - confidence
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: ndpi_int_openvpn_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_openvpn_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                            struct ndpi_flow_struct
      * const flow,\n                                            ndpi_confidence_t
      confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: is_opcode_valid
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_opcode_valid(u_int8_t opcode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/openvpn.c:92,1
    - Dst: P_HARD_RESET_PACKET_ID_OFFSET
      Src: /src/ndpi/src/lib/protocols/openvpn.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - payload
    - hms
    argTypes:
    - u_int8_t*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: get_packet_id
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 0
    functionsReached:
    - P_HARD_RESET_PACKET_ID_OFFSET
    - ntohl
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t get_packet_id(const u_int8_t * payload, u_int8_t hms)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - hmac
    argTypes:
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: check_for_valid_hmac
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_for_valid_hmac(u_int32_t hmac)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P_HARD_RESET_PACKET_ID_OFFSET
      Src: /src/ndpi/src/lib/protocols/openvpn.c:119,1
    - Dst: get_packet_id
      Src: /src/ndpi/src/lib/protocols/openvpn.c:120,1
    - Dst: P_HARD_RESET_PACKET_ID_OFFSET
      Src: /src/ndpi/src/lib/protocols/openvpn.c:123,1
    - Dst: get_packet_id
      Src: /src/ndpi/src/lib/protocols/openvpn.c:124,1
    - Dst: check_for_valid_hmac
      Src: /src/ndpi/src/lib/protocols/openvpn.c:130,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/openvpn.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - payload
    - payload_len
    argTypes:
    - u_int8_t*
    - int
    constantsTouched: []
    func_position:
      end: 134
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 134
    functionName: detect_hmac_size
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 0
    functionsReached:
    - check_for_valid_hmac
    - ntohl
    - P_HARD_RESET_PACKET_ID_OFFSET
    - get_packet_id
    linkageType: ''
    returnType: int8_t
    signature: int8_t detect_hmac_size(const u_int8_t *payload, int payload_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_opcode_valid
      Src: /src/ndpi/src/lib/protocols/openvpn.c:163,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:168,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:177,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:187,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/openvpn.c:192,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:193,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:197,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/openvpn.c:203,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:204,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/openvpn.c:210,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/openvpn.c:216,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/openvpn.c:220,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:221,1
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/protocols/openvpn.c:222,1
    - Dst: detect_hmac_size
      Src: /src/ndpi/src/lib/protocols/openvpn.c:230,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:231,1
    - Dst: P_PACKET_ID_ARRAY_LEN_OFFSET
      Src: /src/ndpi/src/lib/protocols/openvpn.c:234,1
    - Dst: P_PACKET_ID_ARRAY_LEN_OFFSET
      Src: /src/ndpi/src/lib/protocols/openvpn.c:235,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/openvpn.c:245,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/openvpn.c:246,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:249,1
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/protocols/openvpn.c:249,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 69
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 262
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 262
    functionName: search_standard
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ntohs
    - NDPI_LOG_DBG2
    - memcmp
    - ndpi_ntohll
    - is_opcode_valid
    - NDPI_LOG_INFO
    - detect_hmac_size
    - P_PACKET_ID_ARRAY_LEN_OFFSET
    linkageType: ''
    returnType: int
    signature: "int search_standard(struct ndpi_detection_module_struct* ndpi_struct,\n
      \                          struct ndpi_flow_struct* flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:291,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:303,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:311,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:318,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:323,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:329,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:341,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:347,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:359,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/openvpn.c:364,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:367,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - first_byte
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 369
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 369
    functionName: search_heur_opcode_common
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: int
    signature: "int search_heur_opcode_common(struct ndpi_detection_module_struct*
      ndpi_struct,\n                                     struct ndpi_flow_struct*
      flow,\n                                     u_int8_t first_byte)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_flow_addr_informative
      Src: /src/ndpi/src/lib/protocols/openvpn.c:385,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:386,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:393,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:402,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/openvpn.c:420,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:421,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:426,1
    - Dst: search_heur_opcode_common
      Src: /src/ndpi/src/lib/protocols/openvpn.c:429,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:430,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:438,1
    - Dst: search_heur_opcode_common
      Src: /src/ndpi/src/lib/protocols/openvpn.c:450,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 452
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 452
    functionName: search_heur_opcode
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 0
    functionsReached:
    - search_heur_opcode_common
    - is_flow_addr_informative
    - ntohs
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: int
    signature: "int search_heur_opcode(struct ndpi_detection_module_struct* ndpi_struct,\n
      \                             struct ndpi_flow_struct* flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/openvpn.c:459,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/openvpn.c:462,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:463,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/openvpn.c:464,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:468,1
    - Dst: search_standard
      Src: /src/ndpi/src/lib/protocols/openvpn.c:473,1
    - Dst: search_heur_opcode
      Src: /src/ndpi/src/lib/protocols/openvpn.c:477,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/openvpn.c:483,1
    - Dst: ndpi_int_openvpn_add_connection
      Src: /src/ndpi/src/lib/protocols/openvpn.c:488,1
    - Dst: ndpi_int_openvpn_add_connection
      Src: /src/ndpi/src/lib/protocols/openvpn.c:490,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/openvpn.c:491,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/openvpn.c:494,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 497
      start: 455
    functionDepth: 6
    functionLinenumber: 455
    functionLinenumberEnd: 497
    functionName: ndpi_search_openvpn
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - search_standard
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG2
    - NDPI_LOG_DBG
    - ndpi_int_openvpn_add_connection
    - ntohl
    - search_heur_opcode
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_openvpn(struct ndpi_detection_module_struct* ndpi_struct,\n
      \                               struct ndpi_flow_struct* flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/openvpn.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 504
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 504
    functionName: init_openvpn_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/openvpn.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_openvpn_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/dlep.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dlep.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: ndpi_int_dlep_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/dlep.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_dlep_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                         struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dlep.c:48,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/dlep.c:51,1
    - Dst: ndpi_int_dlep_add_connection
      Src: /src/ndpi/src/lib/protocols/dlep.c:52,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dlep.c:59,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dlep.c:59,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dlep.c:61,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/dlep.c:61,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dlep.c:62,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/dlep.c:62,1
    - Dst: ndpi_int_dlep_add_connection
      Src: /src/ndpi/src/lib/protocols/dlep.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dlep.c:70,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 71
    functionName: ndpi_search_dlep
    functionSourceFile: /src/ndpi/src/lib/protocols/dlep.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - memcmp
    - ndpi_int_dlep_add_connection
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_dlep(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dlep.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: init_dlep_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dlep.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dlep_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:59,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:62,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:63,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:64,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:65,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:66,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:69,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:71,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:72,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:73,1
    - Dst: print_ip_p
      Src: /src/ndpi/src/lib/protocols/btlib.c:73,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:75,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/btlib.c:75,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:76,1
    - Dst: print20b
      Src: /src/ndpi/src/lib/protocols/btlib.c:76,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:77,1
    - Dst: print20b
      Src: /src/ndpi/src/lib/protocols/btlib.c:77,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:78,1
    - Dst: printXb
      Src: /src/ndpi/src/lib/protocols/btlib.c:78,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:79,1
    - Dst: print20b
      Src: /src/ndpi/src/lib/protocols/btlib.c:79,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:80,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:82,1
    - Dst: print_ip_p
      Src: /src/ndpi/src/lib/protocols/btlib.c:82,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:83,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/btlib.c:83,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:84,1
    - Dst: print20b
      Src: /src/ndpi/src/lib/protocols/btlib.c:84,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:85,1
    - Dst: printXb
      Src: /src/ndpi/src/lib/protocols/btlib.c:85,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:86,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:90,1
    - Dst: print_ip_p
      Src: /src/ndpi/src/lib/protocols/btlib.c:90,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:96,1
    - Dst: print_ip6_p
      Src: /src/ndpi/src/lib/protocols/btlib.c:96,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:101,1
    - Dst: print_id_ip_p
      Src: /src/ndpi/src/lib/protocols/btlib.c:101,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:106,1
    - Dst: print_id_ip6_p
      Src: /src/ndpi/src/lib/protocols/btlib.c:106,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:112,1
    - Dst: print_ip_p
      Src: /src/ndpi/src/lib/protocols/btlib.c:112,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:116,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:117,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 74
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct bt_parse_protocol*
    constantsTouched: []
    func_position:
      end: 118
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 118
    functionName: dump_bt_proto_struct
    functionSourceFile: /src/ndpi/src/lib/protocols/btlib.c
    functionUses: 0
    functionsReached:
    - printXb
    - print_id_ip_p
    - printf
    - print_ip6_p
    - print20b
    - print_ip_p
    - print_id_ip6_p
    - htons
    linkageType: ''
    returnType: void
    signature: void dump_bt_proto_struct(struct bt_parse_protocol *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:138,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/btlib.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - msg
    - k
    - s
    - l
    argTypes:
    - char*
    - char*
    - u_int8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: _print_safe_str
    functionSourceFile: /src/ndpi/src/lib/protocols/btlib.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void _print_safe_str(char *msg,char *k,const u_int8_t *s,size_t l)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _print_safe_str
      Src: /src/ndpi/src/lib/protocols/btlib.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - cbd
    argTypes:
    - char*
    - bt_parse_data_cb_t*
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: print_safe_str
    functionSourceFile: /src/ndpi/src/lib/protocols/btlib.c
    functionUses: 1
    functionsReached:
    - _print_safe_str
    linkageType: ''
    returnType: void
    signature: void print_safe_str(char *msg,bt_parse_data_cb_t *cbd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_TRACE
      Src: /src/ndpi/src/lib/protocols/btlib.c:165,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:165,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:167,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:172,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:173,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:174,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:175,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:176,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:180,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:180,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:184,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:189,1
    - Dst: DEBUG_TRACE
      Src: /src/ndpi/src/lib/protocols/btlib.c:194,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:194,1
    - Dst: DEBUG_TRACE
      Src: /src/ndpi/src/lib/protocols/btlib.c:198,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:198,1
    - Dst: DEBUG_TRACE
      Src: /src/ndpi/src/lib/protocols/btlib.c:201,1
    - Dst: print_safe_str
      Src: /src/ndpi/src/lib/protocols/btlib.c:201,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:206,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:210,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:214,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:218,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:223,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:228,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:232,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:236,1
    - Dst: DEBUG_TRACE
      Src: /src/ndpi/src/lib/protocols/btlib.c:238,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/btlib.c:238,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:244,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:249,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:279,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:279,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:284,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:293,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/btlib.c:311,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/btlib.c:315,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/btlib.c:319,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/btlib.c:323,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/btlib.c:327,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:331,1
    - Dst: STREQ
      Src: /src/ndpi/src/lib/protocols/btlib.c:339,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/btlib.c:349,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/btlib.c:351,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/btlib.c:353,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/btlib.c:354,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/btlib.c:356,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/btlib.c:357,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 208
    argCount: 1
    argNames:
    - cbd
    argTypes:
    - bt_parse_data_cb_t*
    constantsTouched: []
    func_position:
      end: 372
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 372
    functionName: cb_data
    functionSourceFile: /src/ndpi/src/lib/protocols/btlib.c
    functionUses: 0
    functionsReached:
    - strncmp
    - STREQ
    - printf
    - htonl
    - DEBUG_TRACE
    - print_safe_str
    - htons
    linkageType: ''
    returnType: void
    signature: void cb_data(bt_parse_data_cb_t *cbd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bt_decode
      Src: /src/ndpi/src/lib/protocols/btlib.c:433,1
    - Dst: cb_data
      Src: /src/ndpi/src/lib/protocols/btlib.c:435,1
    - Dst: bt_decode
      Src: /src/ndpi/src/lib/protocols/btlib.c:449,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/btlib.c:453,1
    - Dst: bt_decode
      Src: /src/ndpi/src/lib/protocols/btlib.c:456,1
    - Dst: cb_data
      Src: /src/ndpi/src/lib/protocols/btlib.c:458,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 123
    argCount: 4
    argNames:
    - b
    - l
    - ret
    - cbd
    argTypes:
    - u_int8_t*
    - size_t*
    - int*
    - bt_parse_data_cb_t*
    constantsTouched: []
    func_position:
      end: 472
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 472
    functionName: bt_decode
    functionSourceFile: /src/ndpi/src/lib/protocols/btlib.c
    functionUses: 1
    functionsReached:
    - strncpy
    - bt_decode
    - cb_data
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t *bt_decode(const u_int8_t *b, size_t *l, int *ret, bt_parse_data_cb_t
      *cbd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/wsd.c:36,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/wsd.c:40,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/wsd.c:42,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/wsd.c:44,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/wsd.c:46,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/wsd.c:48,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/wsd.c:49,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/wsd.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: ndpi_search_wsd
    functionSourceFile: /src/ndpi/src/lib/protocols/wsd.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_wsd(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/wsd.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: init_wsd_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/wsd.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_wsd_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: asn1_ber_decode_length
      Src: /src/ndpi/src/lib/protocols/kerberos.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - kasn1_offset
    argTypes:
    - struct ndpi_detection_module_struct*
    - size_t*
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: krb_decode_asn1_length
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - asn1_ber_decode_length
    linkageType: ''
    returnType: int
    signature: "int krb_decode_asn1_length(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 size_t * const kasn1_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: krb_decode_asn1_length
      Src: /src/ndpi/src/lib/protocols/kerberos.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - kasn1_offset
    argTypes:
    - struct ndpi_detection_module_struct*
    - size_t*
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 78
    functionName: krb_decode_asn1_sequence_type
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - krb_decode_asn1_length
    linkageType: ''
    returnType: int
    signature: "int krb_decode_asn1_sequence_type(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                         size_t * const kasn1_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: krb_decode_asn1_length
      Src: /src/ndpi/src/lib/protocols/kerberos.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ndpi_struct
    - kasn1_offset
    - out
    argTypes:
    - struct ndpi_detection_module_struct*
    - size_t*
    - char**
    constantsTouched: []
    func_position:
      end: 110
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 110
    functionName: krb_decode_asn1_string_type
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - krb_decode_asn1_length
    linkageType: ''
    returnType: int
    signature: "int krb_decode_asn1_string_type(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                       size_t * const kasn1_offset,\n
      \                                      char const ** const out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: krb_decode_asn1_length
      Src: /src/ndpi/src/lib/protocols/kerberos.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - ndpi_struct
    - kasn1_offset
    - out
    argTypes:
    - struct ndpi_detection_module_struct*
    - size_t*
    - int*
    constantsTouched: []
    func_position:
      end: 146
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 146
    functionName: krb_decode_asn1_int_type
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - krb_decode_asn1_length
    linkageType: ''
    returnType: int
    signature: "int krb_decode_asn1_int_type(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   size_t * const kasn1_offset,\n                                    int
      * const out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: krb_decode_asn1_length
      Src: /src/ndpi/src/lib/protocols/kerberos.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - kasn1_offset
    argTypes:
    - struct ndpi_detection_module_struct*
    - size_t*
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: krb_decode_asn1_blocks_skip
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - krb_decode_asn1_length
    linkageType: ''
    returnType: int
    signature: "int krb_decode_asn1_blocks_skip(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                       size_t * const kasn1_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/protocols/kerberos.c:183,1
    - Dst: tolower
      Src: /src/ndpi/src/lib/protocols/kerberos.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - dst
    - dst_siz
    - src
    - src_siz
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 190
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 190
    functionName: krb_strncpy_lower
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - ndpi_isprint
    - tolower
    linkageType: ''
    returnType: void
    signature: "void krb_strncpy_lower(char * const dst, size_t dst_siz,\n                              char
      const * const src, size_t src_siz)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: krb_decode_asn1_sequence_type
      Src: /src/ndpi/src/lib/protocols/kerberos.c:201,1
    - Dst: krb_decode_asn1_blocks_skip
      Src: /src/ndpi/src/lib/protocols/kerberos.c:207,1
    - Dst: krb_decode_asn1_int_type
      Src: /src/ndpi/src/lib/protocols/kerberos.c:213,1
    - Dst: krb_decode_asn1_blocks_skip
      Src: /src/ndpi/src/lib/protocols/kerberos.c:219,1
    - Dst: krb_decode_asn1_int_type
      Src: /src/ndpi/src/lib/protocols/kerberos.c:225,1
    - Dst: krb_decode_asn1_blocks_skip
      Src: /src/ndpi/src/lib/protocols/kerberos.c:231,1
    - Dst: krb_decode_asn1_sequence_type
      Src: /src/ndpi/src/lib/protocols/kerberos.c:233,1
    - Dst: krb_decode_asn1_string_type
      Src: /src/ndpi/src/lib/protocols/kerberos.c:239,1
    - Dst: krb_strncpy_lower
      Src: /src/ndpi/src/lib/protocols/kerberos.c:250,1
    - Dst: krb_decode_asn1_string_type
      Src: /src/ndpi/src/lib/protocols/kerberos.c:254,1
    - Dst: krb_decode_asn1_sequence_type
      Src: /src/ndpi/src/lib/protocols/kerberos.c:260,1
    - Dst: krb_decode_asn1_blocks_skip
      Src: /src/ndpi/src/lib/protocols/kerberos.c:266,1
    - Dst: krb_decode_asn1_blocks_skip
      Src: /src/ndpi/src/lib/protocols/kerberos.c:273,1
    - Dst: krb_decode_asn1_string_type
      Src: /src/ndpi/src/lib/protocols/kerberos.c:279,1
    - Dst: krb_strncpy_lower
      Src: /src/ndpi/src/lib/protocols/kerberos.c:290,1
    - Dst: krb_strncpy_lower
      Src: /src/ndpi/src/lib/protocols/kerberos.c:293,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - payload_offset
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - size_t
    constantsTouched: []
    func_position:
      end: 298
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 298
    functionName: krb_parse
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - krb_decode_asn1_string_type
    - krb_strncpy_lower
    - krb_decode_asn1_sequence_type
    - krb_decode_asn1_int_type
    - krb_decode_asn1_blocks_skip
    linkageType: ''
    returnType: int
    signature: "int krb_parse(struct ndpi_detection_module_struct * const ndpi_struct,\n
      \                    struct ndpi_flow_struct * const flow,\n                     size_t
      payload_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/kerberos.c:302,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/kerberos.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 5
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: ndpi_int_kerberos_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_kerberos_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t     struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/kerberos.c:311,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/kerberos.c:311,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/kerberos.c:312,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/kerberos.c:312,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kerberos.c:317,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/kerberos.c:321,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:324,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/kerberos.c:331,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:340,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:344,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/kerberos.c:359,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/kerberos.c:359,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:366,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/kerberos.c:378,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:383,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/kerberos.c:390,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:412,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:425,1
    - Dst: ndpi_int_kerberos_add_connection
      Src: /src/ndpi/src/lib/protocols/kerberos.c:428,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:447,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:454,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:463,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:469,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:482,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/protocols/kerberos.c:490,1
    - Dst: krb_strncpy_lower
      Src: /src/ndpi/src/lib/protocols/kerberos.c:513,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:516,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/kerberos.c:519,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/kerberos.c:519,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:535,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:537,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:545,1
    - Dst: krb_strncpy_lower
      Src: /src/ndpi/src/lib/protocols/kerberos.c:558,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:561,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:563,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:570,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:576,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:583,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:593,1
    - Dst: krb_strncpy_lower
      Src: /src/ndpi/src/lib/protocols/kerberos.c:606,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:609,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:611,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/kerberos.c:615,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:624,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/kerberos.c:632,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/kerberos.c:640,1
    - Dst: krb_parse
      Src: /src/ndpi/src/lib/protocols/kerberos.c:642,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/kerberos.c:644,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/kerberos.c:647,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:654,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:666,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kerberos.c:675,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 213
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 676
      start: 308
    functionDepth: 6
    functionLinenumber: 308
    functionLinenumberEnd: 676
    functionName: ndpi_search_kerberos
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - memcpy
    - printf
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_free
    - krb_parse
    - ndpi_isprint
    - ndpi_malloc
    - NDPI_LOG_DBG
    - krb_strncpy_lower
    - ndpi_int_kerberos_add_connection
    - ntohl
    - strcmp
    - ndpi_snprintf
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_kerberos(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/kerberos.c:684,1
    - Dst: ndpi_search_kerberos
      Src: /src/ndpi/src/lib/protocols/kerberos.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 698
      start: 678
    functionDepth: 7
    functionLinenumber: 678
    functionLinenumberEnd: 698
    functionName: ndpi_search_kerberos_extra
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 0
    functionsReached:
    - ndpi_search_kerberos
    - printf
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_kerberos_extra(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/kerberos.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 705
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 705
    functionName: init_kerberos_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/kerberos.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_kerberos_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ripe_atlas.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ripe_atlas.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ndpi_int_ripe_atlas_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ripe_atlas.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ripe_atlas_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                               struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ripe_atlas.c:47,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ripe_atlas.c:50,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/ripe_atlas.c:54,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/ripe_atlas.c:54,1
    - Dst: ndpi_int_ripe_atlas_add_connection
      Src: /src/ndpi/src/lib/protocols/ripe_atlas.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ripe_atlas.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 60
    functionName: ndpi_search_ripe_atlas
    functionSourceFile: /src/ndpi/src/lib/protocols/ripe_atlas.c
    functionUses: 0
    functionsReached:
    - strncmp
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - ndpi_int_ripe_atlas_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ripe_atlas(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ripe_atlas.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: init_ripe_atlas_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ripe_atlas.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ripe_atlas_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ndpi_int_cod_mobile_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/cod_mobile.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_cod_mobile_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                               struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:46,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:49,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:49,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:51,1
    - Dst: ndpi_int_cod_mobile_add_connection
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:53,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:60,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:61,1
    - Dst: ndpi_int_cod_mobile_add_connection
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:63,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:69,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 71
    functionName: ndpi_search_cod_mobile
    functionSourceFile: /src/ndpi/src/lib/protocols/cod_mobile.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - ndpi_int_cod_mobile_add_connection
    - ndpi_memmem
    linkageType: ''
    returnType: void
    signature: void ndpi_search_cod_mobile(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/cod_mobile.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: init_cod_mobile_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/cod_mobile.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_cod_mobile_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: ndpi_int_snmp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/snmp_proto.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_snmp_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_snmp
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:47,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: ndpi_search_snmp_again
    functionSourceFile: /src/ndpi/src/lib/protocols/snmp_proto.c
    functionUses: 0
    functionsReached:
    - ndpi_search_snmp
    - printf
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_snmp_again(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \     struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:61,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:61,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:67,1
    - Dst: asn1_ber_decode_length
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:75,1
    - Dst: ndpi_int_snmp_add_connection
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:84,1
    - Dst: asn1_ber_decode_length
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:109,1
    - Dst: asn1_ber_decode_length
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:112,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:120,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:131,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:132,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:144,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 145
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 145
    functionName: ndpi_search_snmp
    functionSourceFile: /src/ndpi/src/lib/protocols/snmp_proto.c
    functionUses: 1
    functionsReached:
    - ndpi_set_risk
    - ndpi_int_snmp_add_connection
    - printf
    - NDPI_EXCLUDE_DISSECTOR
    - snprintf
    - htons
    - asn1_ber_decode_length
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_snmp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/snmp_proto.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: init_snmp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/snmp_proto.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_snmp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ptpv2.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: ndpi_int_ptpv2_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ptpv2.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ptpv2_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t*ndpi_struct,
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ptpv2.c:47,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ptpv2.c:51,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ptpv2.c:52,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ptpv2.c:59,1
    - Dst: ndpi_int_ptpv2_add_connection
      Src: /src/ndpi/src/lib/protocols/ptpv2.c:60,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ptpv2.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: ndpi_search_ptpv2_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/ptpv2.c
    functionUses: 0
    functionsReached:
    - ndpi_int_ptpv2_add_connection
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ptpv2_udp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ptpv2.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: init_ptpv2_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ptpv2.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ptpv2_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/z3950.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: ndpi_int_z3950_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/z3950.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_z3950_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                          struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 21
    argCount: 2
    argNames:
    - packet
    - max_sequences
    argTypes:
    - struct ndpi_packet_struct*
    - int
    constantsTouched: []
    func_position:
      end: 81
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 81
    functionName: z3950_parse_sequences
    functionSourceFile: /src/ndpi/src/lib/protocols/z3950.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int z3950_parse_sequences(struct ndpi_packet_struct const * const
      packet,\n                                 int max_sequences)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/z3950.c:90,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/z3950.c:97,1
    - Dst: ndpi_int_z3950_add_connection
      Src: /src/ndpi/src/lib/protocols/z3950.c:108,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/z3950.c:110,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/z3950.c:117,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 118
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 118
    functionName: ndpi_search_z3950
    functionSourceFile: /src/ndpi/src/lib/protocols/z3950.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG
    - ndpi_int_z3950_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_z3950(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/z3950.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: init_z3950_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/z3950.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_z3950_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/imo.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: ndpi_int_imo_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/imo.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_imo_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t*ndpi_struct,
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/imo.c:39,1
    - Dst: ndpi_int_imo_add_connection
      Src: /src/ndpi/src/lib/protocols/imo.c:45,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/imo.c:60,1
    - Dst: ndpi_int_imo_add_connection
      Src: /src/ndpi/src/lib/protocols/imo.c:61,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/imo.c:64,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 68
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 68
    functionName: ndpi_search_imo
    functionSourceFile: /src/ndpi/src/lib/protocols/imo.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_int_imo_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: void ndpi_search_imo(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/imo.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: init_imo_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/imo.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_imo_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/openflow.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/openflow.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: ndpi_int_openflow_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/openflow.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_openflow_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                             struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/openflow.c:46,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/openflow.c:50,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/openflow.c:50,1
    - Dst: ndpi_int_openflow_add_connection
      Src: /src/ndpi/src/lib/protocols/openflow.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/openflow.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: ndpi_search_openflow
    functionSourceFile: /src/ndpi/src/lib/protocols/openflow.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - ndpi_int_openflow_add_connection
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_openflow(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/openflow.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: init_openflow_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/openflow.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_openflow_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:36,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: ndpi_int_teamview_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/teamviewer.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_teamview_add_connection(struct ndpi_detection_module_struct\n
      \                                            *ndpi_struct, struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:52,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:52,1
    - Dst: ndpi_int_teamview_add_connection
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:53,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:54,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:65,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:65,1
    - Dst: ndpi_int_teamview_add_connection
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:66,1
    - Dst: ndpi_int_teamview_add_connection
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:82,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 83
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 83
    functionName: ndpi_search_teamview
    functionSourceFile: /src/ndpi/src/lib/protocols/teamviewer.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_teamview_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_teamview(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/teamviewer.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: init_teamviewer_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/teamviewer.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_teamviewer_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hots.c:33,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/hots.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: ndpi_hots_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/hots.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_hots_add_connection(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/hots.c:42,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/hots.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/hots.c:45,1
    - Dst: ndpi_hots_add_connection
      Src: /src/ndpi/src/lib/protocols/hots.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/hots.c:63,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 64
    functionName: ndpi_search_hots
    functionSourceFile: /src/ndpi/src/lib/protocols/hots.c
    functionUses: 0
    functionsReached:
    - ndpi_hots_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohs
    linkageType: ''
    returnType: void
    signature: void ndpi_search_hots(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/hots.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: init_hots_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/hots.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_hots_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: thrift_strict_hdr
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON thrift_strict_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: thrift_compact_hdr
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON thrift_compact_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/thrift.c:81,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/thrift.c:84,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/thrift.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - master_protocol
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 5
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: ndpi_int_thrift_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_thrift_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                           struct ndpi_flow_struct
      *flow,\n                                           uint16_t master_protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_printable_buffer
      Src: /src/ndpi/src/lib/protocols/thrift.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - method
    - method_length
    argTypes:
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: thrift_validate_method
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached:
    - ndpi_is_printable_buffer
    linkageType: ''
    returnType: int
    signature: int thrift_validate_method(char const * const method, size_t method_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: thrift_validate_version
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int thrift_validate_version(uint8_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message_type
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: thrift_validate_type
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int thrift_validate_type(uint8_t message_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: thrift_validate_method
      Src: /src/ndpi/src/lib/protocols/thrift.c:117,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/thrift.c:118,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/thrift.c:121,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/thrift.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - method
    - method_length
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: thrift_set_method
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - thrift_validate_method
    - strncpy
    - ndpi_min
    linkageType: ''
    returnType: void
    signature: "void thrift_set_method(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow,\n                              char
      const * const method, size_t method_length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/thrift.c:130,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/thrift.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - message_type
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - uint8_t
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: thrift_set_type
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    linkageType: ''
    returnType: void
    signature: "void thrift_set_type(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow,\n                            uint8_t
      message_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:147,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:152,1
    - Dst: thrift_validate_version
      Src: /src/ndpi/src/lib/protocols/thrift.c:156,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:157,1
    - Dst: thrift_validate_type
      Src: /src/ndpi/src/lib/protocols/thrift.c:161,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:162,1
    - Dst: ndpi_int_thrift_add_connection
      Src: /src/ndpi/src/lib/protocols/thrift.c:166,1
    - Dst: thrift_set_method
      Src: /src/ndpi/src/lib/protocols/thrift.c:168,1
    - Dst: thrift_set_type
      Src: /src/ndpi/src/lib/protocols/thrift.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - strict_hdr
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct thrift_strict_hdr*
    constantsTouched: []
    func_position:
      end: 170
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 170
    functionName: ndpi_dissect_strict_hdr
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached:
    - ndpi_int_thrift_add_connection
    - thrift_set_type
    - NDPI_EXCLUDE_DISSECTOR
    - thrift_validate_type
    - thrift_set_method
    - thrift_validate_version
    linkageType: ''
    returnType: void
    signature: "void ndpi_dissect_strict_hdr(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow,\n                                    struct
      thrift_strict_hdr const * const strict_hdr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:179,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:184,1
    - Dst: thrift_validate_version
      Src: /src/ndpi/src/lib/protocols/thrift.c:188,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:189,1
    - Dst: thrift_validate_type
      Src: /src/ndpi/src/lib/protocols/thrift.c:193,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:194,1
    - Dst: ndpi_int_thrift_add_connection
      Src: /src/ndpi/src/lib/protocols/thrift.c:198,1
    - Dst: thrift_set_method
      Src: /src/ndpi/src/lib/protocols/thrift.c:200,1
    - Dst: thrift_set_type
      Src: /src/ndpi/src/lib/protocols/thrift.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - compact_hdr
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct thrift_compact_hdr*
    constantsTouched: []
    func_position:
      end: 202
      start: 172
    functionDepth: 6
    functionLinenumber: 172
    functionLinenumberEnd: 202
    functionName: ndpi_dissect_compact_hdr
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached:
    - ndpi_int_thrift_add_connection
    - thrift_set_type
    - NDPI_EXCLUDE_DISSECTOR
    - thrift_validate_type
    - thrift_set_method
    - thrift_validate_version
    linkageType: ''
    returnType: void
    signature: "void ndpi_dissect_compact_hdr(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                     struct ndpi_flow_struct
      *flow,\n                                     struct thrift_compact_hdr const
      * const compact_hdr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/thrift.c:209,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/thrift.c:217,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/thrift.c:218,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/thrift.c:219,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/thrift.c:221,1
    - Dst: ndpi_int_thrift_add_connection
      Src: /src/ndpi/src/lib/protocols/thrift.c:222,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:238,1
    - Dst: ndpi_dissect_strict_hdr
      Src: /src/ndpi/src/lib/protocols/thrift.c:242,1
    - Dst: ndpi_dissect_compact_hdr
      Src: /src/ndpi/src/lib/protocols/thrift.c:246,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:250,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/thrift.c:255,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 256
      start: 204
    functionDepth: 7
    functionLinenumber: 204
    functionLinenumberEnd: 256
    functionName: ndpi_search_thrift_tcp_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 0
    functionsReached:
    - ndpi_int_thrift_add_connection
    - ndpi_dissect_compact_hdr
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_dissect_strict_hdr
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - LINE_ENDS
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_thrift_tcp_udp(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                       struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/thrift.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: init_apache_thrift_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/thrift.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_apache_thrift_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:51,1
    - Dst: ndpi_user_agent_set
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:56,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:58,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:64,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:66,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:68,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - payload
    - payload_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 79
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 79
    functionName: xiaomi_dissect_metadata
    functionSourceFile: /src/ndpi/src/lib/protocols/xiaomi.c
    functionUses: 0
    functionsReached:
    - ndpi_hostname_sni_set
    - NDPI_LOG_DBG2
    - ndpi_user_agent_set
    - NDPI_LOG_DBG
    - ndpi_strnstr
    linkageType: ''
    returnType: void
    signature: "void xiaomi_dissect_metadata(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct * const flow,\n
      \                                   u_int8_t const * const payload,\n                                    u_int32_t
      payload_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:86,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:91,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:91,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:93,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:93,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:94,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:94,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:95,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:96,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:99,1
    - Dst: xiaomi_dissect_metadata
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:103,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 111
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 111
    functionName: ndpi_search_xiaomi
    functionSourceFile: /src/ndpi/src/lib/protocols/xiaomi.c
    functionUses: 0
    functionsReached:
    - xiaomi_dissect_metadata
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_xiaomi(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/xiaomi.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: init_xiaomi_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/xiaomi.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_xiaomi_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/bjnp.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 5
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: ndpi_int_bjnp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/bjnp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_bjnp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bjnp.c:21,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bjnp.c:22,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bjnp.c:23,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bjnp.c:24,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bjnp.c:26,1
    - Dst: ndpi_int_bjnp_add_connection
      Src: /src/ndpi/src/lib/protocols/bjnp.c:27,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bjnp.c:32,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 33
      start: 15
    functionDepth: 6
    functionLinenumber: 15
    functionLinenumberEnd: 33
    functionName: ndpi_check_bjnp
    functionSourceFile: /src/ndpi/src/lib/protocols/bjnp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - memcmp
    - ndpi_int_bjnp_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: void ndpi_check_bjnp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/bjnp.c:37,1
    - Dst: ndpi_check_bjnp
      Src: /src/ndpi/src/lib/protocols/bjnp.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 7
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: ndpi_search_bjnp
    functionSourceFile: /src/ndpi/src/lib/protocols/bjnp.c
    functionUses: 0
    functionsReached:
    - ndpi_check_bjnp
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_bjnp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/bjnp.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: init_bjnp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/bjnp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_bjnp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/capwap.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ndpi_int_capwap_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/capwap.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_capwap_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/capwap.c:50,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/capwap.c:53,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/capwap.c:56,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: is_capwap_multicast
    functionSourceFile: /src/ndpi/src/lib/protocols/capwap.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: int
    signature: int is_capwap_multicast(const struct ndpi_packet_struct *packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/capwap.c:69,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/capwap.c:69,1
    - Dst: is_capwap_multicast
      Src: /src/ndpi/src/lib/protocols/capwap.c:72,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/capwap.c:90,1
    - Dst: is_capwap_multicast
      Src: /src/ndpi/src/lib/protocols/capwap.c:98,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/capwap.c:108,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/capwap.c:118,1
    - Dst: ndpi_int_capwap_add_connection
      Src: /src/ndpi/src/lib/protocols/capwap.c:122,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 31
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 123
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 123
    functionName: ndpi_search_setup_capwap
    functionSourceFile: /src/ndpi/src/lib/protocols/capwap.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_capwap_add_connection
    - ntohs
    - is_capwap_multicast
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_setup_capwap(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t     struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_setup_capwap
      Src: /src/ndpi/src/lib/protocols/capwap.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 7
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: ndpi_search_capwap
    functionSourceFile: /src/ndpi/src/lib/protocols/capwap.c
    functionUses: 0
    functionsReached:
    - ndpi_search_setup_capwap
    linkageType: ''
    returnType: void
    signature: void ndpi_search_capwap(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/capwap.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: init_capwap_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/capwap.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_capwap_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/afp.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: ndpi_int_afp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/afp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_afp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/afp.c:49,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/afp.c:61,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/afp.c:68,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/afp.c:69,1
    - Dst: ndpi_int_afp_add_connection
      Src: /src/ndpi/src/lib/protocols/afp.c:70,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/afp.c:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: ndpi_search_afp
    functionSourceFile: /src/ndpi/src/lib/protocols/afp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_afp_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    linkageType: ''
    returnType: void
    signature: void ndpi_search_afp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/afp.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: init_afp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/afp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_afp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ethersio.c:37,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/ethersio.c:40,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ethersio.c:43,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ethersio.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ethersio.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: ndpi_search_ethersio
    functionSourceFile: /src/ndpi/src/lib/protocols/ethersio.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ethersio(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ethersio.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: init_ethersio_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ethersio.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ethersio_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/trdp.c:40,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/trdp.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: ndpi_int_trdp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/trdp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_trdp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                         struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/trdp.c:48,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/trdp.c:56,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/trdp.c:56,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/trdp.c:58,1
    - Dst: ndpi_crc32
      Src: /src/ndpi/src/lib/protocols/trdp.c:60,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/trdp.c:61,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/trdp.c:61,1
    - Dst: ndpi_int_trdp_add_connection
      Src: /src/ndpi/src/lib/protocols/trdp.c:62,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/trdp.c:69,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/trdp.c:69,1
    - Dst: ndpi_crc32
      Src: /src/ndpi/src/lib/protocols/trdp.c:74,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/trdp.c:75,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/trdp.c:75,1
    - Dst: ndpi_int_trdp_add_connection
      Src: /src/ndpi/src/lib/protocols/trdp.c:76,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/trdp.c:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 84
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 84
    functionName: ndpi_search_trdp
    functionSourceFile: /src/ndpi/src/lib/protocols/trdp.c
    functionUses: 0
    functionsReached:
    - ndpi_crc32
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - le32toh
    - ndpi_int_trdp_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_trdp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/trdp.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: init_trdp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/trdp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_trdp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/vmware.c:32,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/vmware.c:36,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/vmware.c:39,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/vmware.c:40,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/vmware.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: ndpi_search_vmware
    functionSourceFile: /src/ndpi/src/lib/protocols/vmware.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_vmware(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/vmware.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: init_vmware_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/vmware.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_vmware_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: raft_header
    functionSourceFile: /src/ndpi/src/lib/protocols/raft.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON raft_header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/raft.c:47,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/raft.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: ndpi_int_raft_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/raft.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_raft_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                         struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/raft.c:60,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/raft.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/raft.c:80,1
    - Dst: ndpi_int_raft_add_connection
      Src: /src/ndpi/src/lib/protocols/raft.c:87,1
    - Dst: ndpi_int_raft_add_connection
      Src: /src/ndpi/src/lib/protocols/raft.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 97
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 97
    functionName: ndpi_search_raft
    functionSourceFile: /src/ndpi/src/lib/protocols/raft.c
    functionUses: 0
    functionsReached:
    - ndpi_int_raft_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_raft(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/raft.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: init_raft_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/raft.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_raft_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/smpp.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: ndpi_int_smpp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/smpp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_smpp_add_connection(struct ndpi_detection_module_struct*
      ndpi_struct, \n                                         struct ndpi_flow_struct*
      flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - current_length
    - total_lenth
    argTypes:
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ndpi_check_overflow
    functionSourceFile: /src/ndpi/src/lib/protocols/smpp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_check_overflow(u_int32_t current_length, u_int32_t total_lenth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/smpp.c:47,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/smpp.c:51,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/smpp.c:55,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:55,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/smpp.c:57,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/smpp.c:63,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/smpp.c:77,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:77,1
    - Dst: ndpi_check_overflow
      Src: /src/ndpi/src/lib/protocols/smpp.c:79,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/smpp.c:81,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:81,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/smpp.c:88,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/smpp.c:100,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:100,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/smpp.c:103,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/smpp.c:114,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:135,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:153,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:161,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:176,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:185,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:194,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:208,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:222,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:236,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:250,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:264,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:278,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/smpp.c:292,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/smpp.c:302,1
    - Dst: ndpi_int_smpp_add_connection
      Src: /src/ndpi/src/lib/protocols/smpp.c:303,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/smpp.c:308,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 167
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 310
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 310
    functionName: ndpi_search_smpp_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/smpp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_check_overflow
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_int_smpp_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_smpp_tcp(struct ndpi_detection_module_struct* ndpi_struct,\n
      \                                struct ndpi_flow_struct* flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/smpp.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: init_smpp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/smpp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_smpp_dissector(struct ndpi_detection_module_struct* ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tftp.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ndpi_int_tftp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/tftp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_tftp_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - packet
    - offset
    - string_start
    argTypes:
    - struct ndpi_packet_struct*
    - size_t*
    - char**
    constantsTouched: []
    func_position:
      end: 66
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 66
    functionName: tftp_dissect_szstr
    functionSourceFile: /src/ndpi/src/lib/protocols/tftp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t tftp_dissect_szstr(struct ndpi_packet_struct const * const
      packet,\n                                 size_t * const offset,\n                                 char
      const ** const string_start)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/tftp.c:83,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/tftp.c:85,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/tftp.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - packet
    - offset
    argTypes:
    - struct ndpi_packet_struct*
    - size_t*
    constantsTouched: []
    func_position:
      end: 92
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 92
    functionName: tftp_dissect_mode
    functionSourceFile: /src/ndpi/src/lib/protocols/tftp.c
    functionUses: 0
    functionsReached:
    - NDPI_ARRAY_LENGTH
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: "int tftp_dissect_mode(struct ndpi_packet_struct const * const packet,\n
      \                            size_t * const offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tftp_dissect_szstr
      Src: /src/ndpi/src/lib/protocols/tftp.c:108,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/tftp.c:113,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/tftp.c:115,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/tftp.c:121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 2
    argNames:
    - packet
    - offset
    argTypes:
    - struct ndpi_packet_struct*
    - size_t*
    constantsTouched: []
    func_position:
      end: 131
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 131
    functionName: tftp_dissect_options
    functionSourceFile: /src/ndpi/src/lib/protocols/tftp.c
    functionUses: 0
    functionsReached:
    - tftp_dissect_szstr
    - NDPI_ARRAY_LENGTH
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: "int tftp_dissect_options(struct ndpi_packet_struct const * const packet,\n
      \                               size_t * const offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tftp.c:140,1
    - Dst: get_u_int8_t
      Src: /src/ndpi/src/lib/protocols/tftp.c:143,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:145,1
    - Dst: get_u_int8_t
      Src: /src/ndpi/src/lib/protocols/tftp.c:150,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:159,1
    - Dst: tftp_dissect_szstr
      Src: /src/ndpi/src/lib/protocols/tftp.c:168,1
    - Dst: ndpi_is_printable_buffer
      Src: /src/ndpi/src/lib/protocols/tftp.c:171,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:173,1
    - Dst: tftp_dissect_mode
      Src: /src/ndpi/src/lib/protocols/tftp.c:177,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:179,1
    - Dst: tftp_dissect_options
      Src: /src/ndpi/src/lib/protocols/tftp.c:183,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:185,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/tftp.c:190,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/tftp.c:191,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tftp.c:195,1
    - Dst: ndpi_int_tftp_add_connection
      Src: /src/ndpi/src/lib/protocols/tftp.c:196,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:204,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tftp.c:209,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tftp.c:209,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:223,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tftp.c:228,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tftp.c:228,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:244,1
    - Dst: tftp_dissect_options
      Src: /src/ndpi/src/lib/protocols/tftp.c:255,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:257,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tftp.c:263,1
    - Dst: ndpi_int_tftp_add_connection
      Src: /src/ndpi/src/lib/protocols/tftp.c:264,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tftp.c:268,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tftp.c:274,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tftp.c:279,1
    - Dst: ndpi_int_tftp_add_connection
      Src: /src/ndpi/src/lib/protocols/tftp.c:280,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 281
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 281
    functionName: ndpi_search_tftp
    functionSourceFile: /src/ndpi/src/lib/protocols/tftp.c
    functionUses: 0
    functionsReached:
    - tftp_dissect_szstr
    - memcpy
    - ntohs
    - ndpi_int_tftp_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_min
    - get_u_int16_t
    - tftp_dissect_options
    - NDPI_LOG_DBG2
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_is_printable_buffer
    - get_u_int8_t
    - tftp_dissect_mode
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_tftp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/tftp.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: init_tftp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/tftp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_tftp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/gearman.c:37,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/gearman.c:40,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/gearman.c:41,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/gearman.c:43,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/gearman.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/gearman.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: ndpi_search_gearman
    functionSourceFile: /src/ndpi/src/lib/protocols/gearman.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_gearman(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/gearman.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: init_gearman_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/gearman.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_gearman_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/kakaotalk_voice.c:38,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/kakaotalk_voice.c:55,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/kakaotalk_voice.c:56,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/kakaotalk_voice.c:57,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/kakaotalk_voice.c:58,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kakaotalk_voice.c:64,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 65
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 65
    functionName: ndpi_search_kakaotalk_voice
    functionSourceFile: /src/ndpi/src/lib/protocols/kakaotalk_voice.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_kakaotalk_voice(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/kakaotalk_voice.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: init_kakaotalk_voice_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/kakaotalk_voice.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_kakaotalk_voice_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/sip.c:36,1
    - Dst: search_metadata
      Src: /src/ndpi/src/lib/protocols/sip.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: ndpi_int_sip_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/sip.c
    functionUses: 0
    functionsReached:
    - search_metadata
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_sip_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\tstruct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/sip.c:124,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/sip.c:126,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/sip.c:127,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 133
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 133
    functionName: search_cmd
    functionSourceFile: /src/ndpi/src/lib/protocols/sip.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncasecmp
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: int
    signature: int search_cmd(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/sip.c:143,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/sip.c:143,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/sip.c:146,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/sip.c:146,1
    - Dst: isdigit
      Src: /src/ndpi/src/lib/protocols/sip.c:154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - str
    - imsi_len
    argTypes:
    - char*
    - int*
    constantsTouched: []
    func_position:
      end: 157
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 157
    functionName: get_imsi
    functionSourceFile: /src/ndpi/src/lib/protocols/sip.c
    functionUses: 0
    functionsReached:
    - ndpi_strnstr
    - isdigit
    - strlen
    linkageType: ''
    returnType: char
    signature: char *get_imsi(const char *str, int *imsi_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: metadata_enabled
    functionSourceFile: /src/ndpi/src/lib/protocols/sip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int metadata_enabled(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: metadata_enabled
      Src: /src/ndpi/src/lib/protocols/sip.c:179,1
    - Dst: NDPI_PARSE_PACKET_LINE_INFO
      Src: /src/ndpi/src/lib/protocols/sip.c:182,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/sip.c:189,1
    - Dst: ndpi_strip_leading_trailing_spaces
      Src: /src/ndpi/src/lib/protocols/sip.c:191,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/sip.c:193,1
    - Dst: ndpi_strndup
      Src: /src/ndpi/src/lib/protocols/sip.c:194,1
    - Dst: get_imsi
      Src: /src/ndpi/src/lib/protocols/sip.c:197,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/sip.c:199,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/sip.c:200,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/sip.c:210,1
    - Dst: ndpi_strip_leading_trailing_spaces
      Src: /src/ndpi/src/lib/protocols/sip.c:212,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/sip.c:214,1
    - Dst: ndpi_strndup
      Src: /src/ndpi/src/lib/protocols/sip.c:215,1
    - Dst: get_imsi
      Src: /src/ndpi/src/lib/protocols/sip.c:218,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/sip.c:220,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/sip.c:221,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 227
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 227
    functionName: search_metadata
    functionSourceFile: /src/ndpi/src/lib/protocols/sip.c
    functionUses: 1
    functionsReached:
    - memcpy
    - NDPI_LOG_DBG2
    - memcmp
    - metadata_enabled
    - ndpi_strndup
    - NDPI_PARSE_PACKET_LINE_INFO
    - get_imsi
    - ndpi_strip_leading_trailing_spaces
    linkageType: ''
    returnType: void
    signature: void search_metadata(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/sip.c:236,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/sip.c:239,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/sip.c:245,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/sip.c:245,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/sip.c:248,1
    - Dst: isprint
      Src: /src/ndpi/src/lib/protocols/sip.c:253,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/sip.c:254,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/sip.c:259,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/sip.c:260,1
    - Dst: ndpi_int_sip_add_connection
      Src: /src/ndpi/src/lib/protocols/sip.c:261,1
    - Dst: search_cmd
      Src: /src/ndpi/src/lib/protocols/sip.c:266,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/sip.c:267,1
    - Dst: ndpi_int_sip_add_connection
      Src: /src/ndpi/src/lib/protocols/sip.c:268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 272
      start: 231
    functionDepth: 6
    functionLinenumber: 231
    functionLinenumberEnd: 272
    functionName: ndpi_search_sip
    functionSourceFile: /src/ndpi/src/lib/protocols/sip.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_LOG_DBG2
    - get_u_int16_t
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - search_cmd
    - ndpi_int_sip_add_connection
    - isprint
    linkageType: ''
    returnType: void
    signature: void ndpi_search_sip(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/sip.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: init_sip_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/sip.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_sip_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/nexon.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: ndpi_int_nexon_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/nexon.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_nexon_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/nexon.c:42,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/nexon.c:45,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nexon.c:45,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/nexon.c:46,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nexon.c:46,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/nexon.c:47,1
    - Dst: ndpi_int_nexon_add_connection
      Src: /src/ndpi/src/lib/protocols/nexon.c:48,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/nexon.c:52,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/nexon.c:52,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/nexon.c:53,1
    - Dst: ndpi_int_nexon_add_connection
      Src: /src/ndpi/src/lib/protocols/nexon.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/nexon.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 62
    functionName: ndpi_search_nexon
    functionSourceFile: /src/ndpi/src/lib/protocols/nexon.c
    functionUses: 0
    functionsReached:
    - ndpi_int_nexon_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_nexon(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/nexon.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: init_nexon_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/nexon.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_nexon_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/lustre.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/lustre.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: ndpi_int_lustre_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/lustre.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_lustre_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                           struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/lustre.c:45,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/lustre.c:50,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lustre.c:50,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/lustre.c:51,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lustre.c:51,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/lustre.c:53,1
    - Dst: ndpi_int_lustre_add_connection
      Src: /src/ndpi/src/lib/protocols/lustre.c:55,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/lustre.c:64,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lustre.c:64,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/lustre.c:66,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lustre.c:66,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/lustre.c:67,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lustre.c:67,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/lustre.c:69,1
    - Dst: ndpi_int_lustre_add_connection
      Src: /src/ndpi/src/lib/protocols/lustre.c:72,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/lustre.c:77,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 78
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 78
    functionName: ndpi_search_lustre
    functionSourceFile: /src/ndpi/src/lib/protocols/lustre.c
    functionUses: 0
    functionsReached:
    - ndpi_int_lustre_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - le32toh
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_lustre(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/lustre.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: init_lustre_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/lustre.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_lustre_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/cip.c:36,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cip.c:39,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cip.c:39,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/cip.c:55,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/cip.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/cip.c:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 63
    functionName: ndpi_search_cip
    functionSourceFile: /src/ndpi/src/lib/protocols/cip.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_cip(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/cip.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: init_cip_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/cip.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_cip_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/ookla.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: get_ookla_key
    functionSourceFile: /src/ndpi/src/lib/protocols/ookla.c
    functionUses: 0
    functionsReached:
    - ndpi_quick_hash64
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t get_ookla_key(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_ookla_key
      Src: /src/ndpi/src/lib/protocols/ookla.c:50,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/protocols/ookla.c:52,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/ookla.c:54,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ookla.c:56,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ookla.c:56,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ookla.c:56,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ookla.c:61,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ookla.c:61,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ookla.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: ookla_search_into_cache
    functionSourceFile: /src/ndpi/src/lib/protocols/ookla.c
    functionUses: 1
    functionsReached:
    - printf
    - ndpi_lru_find_cache
    - ntohs
    - get_ookla_key
    - ndpi_get_current_time
    linkageType: ''
    returnType: int
    signature: "int ookla_search_into_cache(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_ookla_key
      Src: /src/ndpi/src/lib/protocols/ookla.c:77,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ookla.c:79,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ookla.c:79,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ookla.c:79,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/ookla.c:81,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/ookla.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: ookla_add_to_cache
    functionSourceFile: /src/ndpi/src/lib/protocols/ookla.c
    functionUses: 2
    functionsReached:
    - ndpi_lru_add_to_cache
    - printf
    - ntohs
    - get_ookla_key
    - ndpi_get_current_time
    linkageType: ''
    returnType: void
    signature: "void ookla_add_to_cache(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                       struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ookla.c:92,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ookla.c:94,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ookla.c:94,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ookla.c:95,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/ookla.c:100,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/ookla.c:101,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/ookla.c:101,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/ookla.c:108,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/ookla.c:109,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/ookla.c:109,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ookla.c:110,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ookla.c:111,1
    - Dst: ookla_add_to_cache
      Src: /src/ndpi/src/lib/protocols/ookla.c:112,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ookla.c:116,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 117
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 117
    functionName: ndpi_search_ookla
    functionSourceFile: /src/ndpi/src/lib/protocols/ookla.c
    functionUses: 0
    functionsReached:
    - ookla_add_to_cache
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ookla(struct ndpi_detection_module_struct* ndpi_struct,
      struct ndpi_flow_struct* flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ookla.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: init_ookla_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ookla.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ookla_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/nest_log_sink.c:42,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/nest_log_sink.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/nest_log_sink.c:49,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/nest_log_sink.c:50,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/nest_log_sink.c:51,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/nest_log_sink.c:61,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/nest_log_sink.c:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 64
    functionName: ndpi_search_nest_log_sink
    functionSourceFile: /src/ndpi/src/lib/protocols/nest_log_sink.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_nest_log_sink(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                      struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/nest_log_sink.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: init_nest_log_sink_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/nest_log_sink.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_nest_log_sink_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/discord.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/discord.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_discord_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/discord.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_discord_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                             struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/discord.c:44,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/discord.c:47,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/discord.c:47,1
    - Dst: ndpi_int_discord_add_connection
      Src: /src/ndpi/src/lib/protocols/discord.c:49,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/discord.c:56,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/discord.c:56,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/discord.c:63,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/discord.c:63,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/discord.c:67,1
    - Dst: ndpi_int_discord_add_connection
      Src: /src/ndpi/src/lib/protocols/discord.c:69,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/discord.c:75,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 76
    functionName: ndpi_search_discord
    functionSourceFile: /src/ndpi/src/lib/protocols/discord.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - strncpy
    - NDPI_LOG_DBG
    - ndpi_int_discord_add_connection
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_discord(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/discord.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: init_discord_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/discord.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_discord_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/icecast.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: ndpi_int_icecast_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/icecast.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_icecast_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/icecast.c:42,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/icecast.c:45,1
    - Dst: ndpi_parse_packet_line_info_any
      Src: /src/ndpi/src/lib/protocols/icecast.c:47,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/icecast.c:48,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/icecast.c:51,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/icecast.c:52,1
    - Dst: ndpi_int_icecast_add_connection
      Src: /src/ndpi/src/lib/protocols/icecast.c:53,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/icecast.c:64,1
    - Dst: current_pkt_from_server_to_client
      Src: /src/ndpi/src/lib/protocols/icecast.c:69,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/icecast.c:72,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/icecast.c:75,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/icecast.c:76,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/icecast.c:77,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/icecast.c:81,1
    - Dst: ndpi_int_icecast_add_connection
      Src: /src/ndpi/src/lib/protocols/icecast.c:82,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/icecast.c:87,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 88
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 88
    functionName: ndpi_search_icecast_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/icecast.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - current_pkt_from_server_to_client
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_parse_packet_line_info_any
    - ndpi_int_icecast_add_connection
    - ndpi_parse_packet_line_info
    - current_pkt_from_client_to_server
    linkageType: ''
    returnType: void
    signature: void ndpi_search_icecast_tcp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/icecast.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: init_icecast_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/icecast.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_icecast_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/vnc.c:34,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/vnc.c:40,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/vnc.c:42,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/vnc.c:43,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/vnc.c:50,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/vnc.c:52,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/vnc.c:53,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/vnc.c:54,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/vnc.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/vnc.c:60,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: ndpi_search_vnc_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/vnc.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_vnc_tcp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/vnc.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: init_vnc_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/vnc.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_vnc_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/modbus.c:34,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/modbus.c:35,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/modbus.c:46,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/modbus.c:53,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/modbus.c:54,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/modbus.c:58,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/modbus.c:59,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/modbus.c:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 66
    functionName: ndpi_search_modbus_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/modbus.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_modbus_tcp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/modbus.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: init_modbus_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/modbus.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_modbus_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/ethereum.c:43,1
    - Dst: mining_make_lru_cache_key
      Src: /src/ndpi/src/lib/protocols/ethereum.c:43,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/ethereum.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: ndpi_ether_cache_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ethereum.c
    functionUses: 0
    functionsReached:
    - mining_make_lru_cache_key
    - ndpi_lru_add_to_cache
    - ndpi_get_current_time
    linkageType: ''
    returnType: void
    signature: "void ndpi_ether_cache_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ethereum.c:52,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ethereum.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 72
    functionName: ndpi_ether_is_discv4
    functionSourceFile: /src/ndpi/src/lib/protocols/ethereum.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: bool
    signature: bool ndpi_ether_is_discv4(const struct ndpi_packet_struct *packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ethereum.c:80,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ethereum.c:81,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ethereum.c:82,1
    - Dst: ndpi_ether_is_discv4
      Src: /src/ndpi/src/lib/protocols/ethereum.c:83,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ethereum.c:84,1
    - Dst: ndpi_ether_cache_connection
      Src: /src/ndpi/src/lib/protocols/ethereum.c:85,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ethereum.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 90
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 90
    functionName: ndpi_search_ethereum_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/ethereum.c
    functionUses: 0
    functionsReached:
    - ndpi_ether_cache_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_ether_is_discv4
    - ntohl
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ethereum_udp(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - dport
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: ndpi_is_ether_port
    functionSourceFile: /src/ndpi/src/lib/protocols/ethereum.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_is_ether_port(u_int16_t dport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ethereum.c:104,1
    - Dst: ndpi_is_ether_port
      Src: /src/ndpi/src/lib/protocols/ethereum.c:111,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ethereum.c:111,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ethereum.c:112,1
    - Dst: ndpi_ether_cache_connection
      Src: /src/ndpi/src/lib/protocols/ethereum.c:113,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/ethereum.c:116,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/ethereum.c:118,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/ethereum.c:119,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ethereum.c:129,1
    - Dst: ndpi_ether_cache_connection
      Src: /src/ndpi/src/lib/protocols/ethereum.c:130,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ethereum.c:135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 136
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 136
    functionName: ndpi_search_ethereum_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/ethereum.c
    functionUses: 0
    functionsReached:
    - ndpi_ether_cache_connection
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_strnstr
    - ndpi_is_ether_port
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ethereum_tcp(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_ethereum_tcp
      Src: /src/ndpi/src/lib/protocols/ethereum.c:145,1
    - Dst: ndpi_search_ethereum_udp
      Src: /src/ndpi/src/lib/protocols/ethereum.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 6
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: ndpi_search_ethereum
    functionSourceFile: /src/ndpi/src/lib/protocols/ethereum.c
    functionUses: 0
    functionsReached:
    - ndpi_search_ethereum_udp
    - ndpi_search_ethereum_tcp
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ethereum(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ethereum.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: init_ethereum_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ethereum.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ethereum_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: is_valid_rtp_payload_type
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_valid_rtp_payload_type(uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 128
    argCount: 3
    argNames:
    - payloadType
    - s_type
    - sub_proto
    argTypes:
    - u_int8_t
    - u_int8_t*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 209
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 209
    functionName: rtp_get_stream_type
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t rtp_get_stream_type(u_int8_t payloadType, u_int8_t *s_type,
      u_int16_t sub_proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: is_valid_rtcp_payload_type
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_valid_rtcp_payload_type(uint8_t type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtp.c:230,1
    - Dst: is_valid_rtp_payload_type
      Src: /src/ndpi/src/lib/protocols/rtp.c:234,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtp.c:242,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rtp.c:245,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtp.c:249,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rtp.c:256,1
    - Dst: is_valid_rtcp_payload_type
      Src: /src/ndpi/src/lib/protocols/rtp.c:258,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rtp.c:260,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtp.c:262,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtp.c:267,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - ndpi_struct
    - payload
    - payload_len
    - seq
    argTypes:
    - struct ndpi_detection_module_struct*
    - u_int8_t*
    - u_int16_t
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 269
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 269
    functionName: is_rtp_or_rtcp
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached:
    - is_valid_rtp_payload_type
    - is_valid_rtcp_payload_type
    - NDPI_LOG_DBG
    - ntohs
    linkageType: ''
    returnType: int
    signature: "int is_rtp_or_rtcp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                  const u_int8_t *payload, u_int16_t payload_len, u_int16_t
      *seq)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/rtp.c:277,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - payload
    - payload_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 343
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 343
    functionName: get_rtp_info
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached:
    - current_pkt_from_client_to_server
    linkageType: ''
    returnType: int
    signature: "int get_rtp_info(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                       struct ndpi_flow_struct *flow,\n                        const
      u_int8_t *payload,\n                        u_int16_t payload_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: keep_extra_dissection
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int keep_extra_dissection(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/rtp.c:355,1
    - Dst: ndpi_rtp_search
      Src: /src/ndpi/src/lib/protocols/rtp.c:357,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/rtp.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: rtp_search_again
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached:
    - keep_extra_dissection
    - ndpi_rtp_search
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: int
    signature: "int rtp_search_again(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/rtp.c:368,1
    - Dst: ndpi_seen_flow_beginning
      Src: /src/ndpi/src/lib/protocols/rtp.c:374,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtp.c:375,1
    - Dst: switch_extra_dissection_to_stun
      Src: /src/ndpi/src/lib/protocols/rtp.c:376,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/rtp.c:380,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtp.c:382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 387
      start: 364
    functionDepth: 5
    functionLinenumber: 364
    functionLinenumberEnd: 387
    functionName: ndpi_int_rtp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached:
    - ndpi_seen_flow_beginning
    - keep_extra_dissection
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    - switch_extra_dissection_to_stun
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_rtp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                        struct ndpi_flow_struct
      *flow,\n                                        u_int16_t proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtp.c:404,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtp.c:410,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtp.c:420,1
    - Dst: is_rtp_or_rtcp
      Src: /src/ndpi/src/lib/protocols/rtp.c:424,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtp.c:438,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtp.c:441,1
    - Dst: get_rtp_info
      Src: /src/ndpi/src/lib/protocols/rtp.c:443,1
    - Dst: rtp_get_stream_type
      Src: /src/ndpi/src/lib/protocols/rtp.c:444,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/rtp.c:447,1
    - Dst: ndpi_int_rtp_add_connection
      Src: /src/ndpi/src/lib/protocols/rtp.c:448,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/rtp.c:461,1
    - Dst: ndpi_int_rtp_add_connection
      Src: /src/ndpi/src/lib/protocols/rtp.c:462,1
    - Dst: is_stun
      Src: /src/ndpi/src/lib/protocols/rtp.c:472,1
    - Dst: is_dtls
      Src: /src/ndpi/src/lib/protocols/rtp.c:473,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtp.c:476,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 480
      start: 391
    functionDepth: 6
    functionLinenumber: 391
    functionLinenumberEnd: 480
    functionName: ndpi_rtp_search
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 1
    functionsReached:
    - is_dtls
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_rtp_add_connection
    - is_stun
    - rtp_get_stream_type
    - NDPI_LOG_DBG
    - is_rtp_or_rtcp
    - NDPI_LOG_INFO
    - get_rtp_info
    linkageType: ''
    returnType: void
    signature: "void ndpi_rtp_search(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtp.c:498,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rtp.c:502,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/rtp.c:502,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtp.c:504,1
    - Dst: ndpi_rtp_search
      Src: /src/ndpi/src/lib/protocols/rtp.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 509
      start: 491
    functionDepth: 7
    functionLinenumber: 491
    functionLinenumberEnd: 509
    functionName: ndpi_search_rtp_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached:
    - get_u_int16_t
    - ndpi_rtp_search
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_rtp_tcp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\tstruct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rtp.c:516,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rtp.c:517,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtp.c:527,1
    - Dst: ndpi_rtp_search
      Src: /src/ndpi/src/lib/protocols/rtp.c:530,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 531
      start: 512
    functionDepth: 7
    functionLinenumber: 512
    functionLinenumberEnd: 531
    functionName: ndpi_search_rtp_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached:
    - ndpi_rtp_search
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_rtp_udp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\tstruct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_rtp_tcp
      Src: /src/ndpi/src/lib/protocols/rtp.c:538,1
    - Dst: ndpi_search_rtp_udp
      Src: /src/ndpi/src/lib/protocols/rtp.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 542
      start: 534
    functionDepth: 8
    functionLinenumber: 534
    functionLinenumberEnd: 542
    functionName: ndpi_search_rtp
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 0
    functionsReached:
    - ndpi_search_rtp_udp
    - ndpi_search_rtp_tcp
    linkageType: ''
    returnType: void
    signature: void ndpi_search_rtp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/rtp.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: init_rtp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/rtp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_rtp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/protobuf.c:50,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/protobuf.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: ndpi_int_protobuf_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/protobuf.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_protobuf_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                             struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - tag
    - field_number
    argTypes:
    - uint64_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: protobuf_dissect_tag
    functionSourceFile: /src/ndpi/src/lib/protocols/protobuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum protobuf_type
    signature: enum protobuf_type protobuf_dissect_tag(uint64_t tag, uint64_t * const
      field_number)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - packet
    - offset
    - value
    argTypes:
    - struct ndpi_packet_struct*
    - size_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 97
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 97
    functionName: protobuf_dissect_varint
    functionSourceFile: /src/ndpi/src/lib/protocols/protobuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int protobuf_dissect_varint(struct ndpi_packet_struct const * const
      packet,\n                        size_t * const offset, uint64_t * const value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/protobuf.c:104,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/protobuf.c:111,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/protobuf.c:115,1
    - Dst: protobuf_dissect_varint
      Src: /src/ndpi/src/lib/protocols/protobuf.c:119,1
    - Dst: protobuf_dissect_tag
      Src: /src/ndpi/src/lib/protocols/protobuf.c:125,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/protobuf.c:128,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/protobuf.c:133,1
    - Dst: protobuf_dissect_varint
      Src: /src/ndpi/src/lib/protocols/protobuf.c:140,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/protobuf.c:142,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/protobuf.c:146,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/protobuf.c:154,1
    - Dst: le64toh
      Src: /src/ndpi/src/lib/protocols/protobuf.c:163,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/protobuf.c:164,1
    - Dst: protobuf_dissect_varint
      Src: /src/ndpi/src/lib/protocols/protobuf.c:173,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/protobuf.c:179,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/protobuf.c:185,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/protobuf.c:191,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/protobuf.c:198,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/protobuf.c:203,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/protobuf.c:212,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/protobuf.c:213,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/protobuf.c:224,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/protobuf.c:235,1
    - Dst: ndpi_int_protobuf_add_connection
      Src: /src/ndpi/src/lib/protocols/protobuf.c:237,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/protobuf.c:248,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 78
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 249
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 249
    functionName: ndpi_search_protobuf
    functionSourceFile: /src/ndpi/src/lib/protocols/protobuf.c
    functionUses: 0
    functionsReached:
    - ndpi_int_protobuf_add_connection
    - printf
    - NDPI_EXCLUDE_DISSECTOR
    - protobuf_dissect_varint
    - protobuf_dissect_tag
    - NDPI_LOG_DBG
    - le64toh
    - le32toh
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_protobuf(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/protobuf.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: init_protobuf_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/protobuf.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_protobuf_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: oicq_hdr
    functionSourceFile: /src/ndpi/src/lib/protocols/oicq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON oicq_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/oicq.c:42,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/oicq.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: ndpi_int_oicq_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/oicq.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_oicq_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                         struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/oicq.c:58,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/oicq.c:62,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/oicq.c:68,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/oicq.c:72,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/oicq.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/oicq.c:82,1
    - Dst: ndpi_int_oicq_add_connection
      Src: /src/ndpi/src/lib/protocols/oicq.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 87
      start: 52
    functionDepth: 6
    functionLinenumber: 52
    functionLinenumberEnd: 87
    functionName: ndpi_search_oicq
    functionSourceFile: /src/ndpi/src/lib/protocols/oicq.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_LOG_DBG
    - ndpi_int_oicq_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_oicq(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/oicq.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: init_oicq_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/oicq.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_oicq_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/egd.c:38,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/egd.c:40,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/egd.c:40,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/egd.c:42,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/egd.c:43,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/egd.c:43,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/egd.c:44,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/egd.c:46,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/egd.c:47,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/egd.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: ndpi_search_egd
    functionSourceFile: /src/ndpi/src/lib/protocols/egd.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_egd(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/egd.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: init_egd_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/egd.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_egd_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: ndpi_int_ieee_c37118_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ieee-c37118.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ieee_c37118_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                            struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:48,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:55,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:55,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:56,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:56,1
    - Dst: ndpi_crc16_ccit_false
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:59,1
    - Dst: ndpi_int_ieee_c37118_add_connection
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:61,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: ndpi_search_ieee_c37118
    functionSourceFile: /src/ndpi/src/lib/protocols/ieee-c37118.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - ndpi_int_ieee_c37118_add_connection
    - NDPI_LOG_DBG
    - ndpi_crc16_ccit_false
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ieee_c37118(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ieee-c37118.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: init_ieee_c37118_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ieee-c37118.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ieee_c37118_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/source_engine.c:34,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/source_engine.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: ndpi_int_source_engine_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/source_engine.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_source_engine_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                                  struct
      ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/source_engine.c:49,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/source_engine.c:54,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/source_engine.c:56,1
    - Dst: ndpi_int_source_engine_add_connection
      Src: /src/ndpi/src/lib/protocols/source_engine.c:62,1
    - Dst: current_pkt_from_server_to_client
      Src: /src/ndpi/src/lib/protocols/source_engine.c:68,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/source_engine.c:72,1
    - Dst: ndpi_int_source_engine_add_connection
      Src: /src/ndpi/src/lib/protocols/source_engine.c:75,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/source_engine.c:80,1
    - Dst: ndpi_int_source_engine_add_connection
      Src: /src/ndpi/src/lib/protocols/source_engine.c:86,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/source_engine.c:92,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 21
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 93
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 93
    functionName: ndpi_search_source_engine
    functionSourceFile: /src/ndpi/src/lib/protocols/source_engine.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_source_engine_add_connection
    - current_pkt_from_server_to_client
    - NDPI_LOG_DBG
    - current_pkt_from_client_to_server
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_source_engine(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                      struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/source_engine.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: init_source_engine_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/source_engine.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_source_engine_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/zeromq.c:33,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zeromq.c:36,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/zeromq.c:37,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zeromq.c:39,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/zeromq.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 45
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 45
    functionName: ndpi_search_zmq
    functionSourceFile: /src/ndpi/src/lib/protocols/zeromq.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_zmq(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/zeromq.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: init_zmq_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/zeromq.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_zmq_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/drda.c:44,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/drda.c:53,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/drda.c:56,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/drda.c:69,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/drda.c:71,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/drda.c:79,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/drda.c:80,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/drda.c:86,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 87
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 87
    functionName: ndpi_search_drda
    functionSourceFile: /src/ndpi/src/lib/protocols/drda.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_drda(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/drda.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: init_drda_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/drda.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_drda_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/gnutella.c:37,1
    - Dst: ndpi_set_detected_protocol_keeping_master
      Src: /src/ndpi/src/lib/protocols/gnutella.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - confidence
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: ndpi_int_gnutella_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/gnutella.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol_keeping_master
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_gnutella_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t     struct ndpi_flow_struct *flow,\n\t\t\t\t\t     ndpi_confidence_t
      confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/gnutella.c:46,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/gnutella.c:49,1
    - Dst: ndpi_int_gnutella_add_connection
      Src: /src/ndpi/src/lib/protocols/gnutella.c:50,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/gnutella.c:52,1
    - Dst: ndpi_user_agent_set
      Src: /src/ndpi/src/lib/protocols/gnutella.c:54,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/gnutella.c:60,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/gnutella.c:60,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/gnutella.c:64,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/gnutella.c:64,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/gnutella.c:65,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/gnutella.c:65,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/gnutella.c:66,1
    - Dst: ndpi_int_gnutella_add_connection
      Src: /src/ndpi/src/lib/protocols/gnutella.c:67,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/gnutella.c:72,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/gnutella.c:73,1
    - Dst: ndpi_int_gnutella_add_connection
      Src: /src/ndpi/src/lib/protocols/gnutella.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/gnutella.c:79,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 80
    functionName: ndpi_search_gnutella
    functionSourceFile: /src/ndpi/src/lib/protocols/gnutella.c
    functionUses: 0
    functionsReached:
    - ndpi_int_gnutella_add_connection
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - ndpi_user_agent_set
    - NDPI_LOG_DBG
    - ntohl
    - le32toh
    - ndpi_parse_packet_line_info
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_gnutella(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/gnutella.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: init_gnutella_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/gnutella.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_gnutella_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/memcached.c:98,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/memcached.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: ndpi_int_memcached_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/memcached.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_memcached_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \     *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/memcached.c:111,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/memcached.c:115,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/memcached.c:123,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/memcached.c:129,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:143,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:144,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:145,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:146,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:147,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:148,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:149,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:150,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:151,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:152,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:153,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:154,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:155,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:156,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:157,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:158,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:159,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:160,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:161,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:162,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:163,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:164,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:165,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:166,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:167,1
    - Dst: MEMCACHED_MATCH
      Src: /src/ndpi/src/lib/protocols/memcached.c:168,1
    - Dst: ndpi_int_memcached_add_connection
      Src: /src/ndpi/src/lib/protocols/memcached.c:171,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/memcached.c:173,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 77
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 174
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 174
    functionName: ndpi_search_memcached
    functionSourceFile: /src/ndpi/src/lib/protocols/memcached.c
    functionUses: 0
    functionsReached:
    - ndpi_int_memcached_add_connection
    - NDPI_LOG_DBG
    - MEMCACHED_MATCH
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_memcached(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \ struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/memcached.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: init_memcached_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/memcached.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_memcached_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dofus.c:34,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/dofus.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ndpi_dofus_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/dofus.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_dofus_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dofus.c:42,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dofus.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dofus.c:45,1
    - Dst: ndpi_dofus_add_connection
      Src: /src/ndpi/src/lib/protocols/dofus.c:50,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dofus.c:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: ndpi_search_dofus
    functionSourceFile: /src/ndpi/src/lib/protocols/dofus.c
    functionUses: 0
    functionsReached:
    - ndpi_dofus_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    - ntohs
    linkageType: ''
    returnType: void
    signature: void ndpi_search_dofus(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dofus.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: init_dofus_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dofus.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dofus_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dnp3.c:38,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/dnp3.c:47,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dnp3.c:48,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dnp3.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: ndpi_search_dnp3_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/dnp3.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_dnp3_tcp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dnp3.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: init_dnp3_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dnp3.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dnp3_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: ndpi_int_genshin_impact_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/genshin_impact.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_genshin_impact_add_connection(\n                struct
      ndpi_detection_module_struct *ndpi_struct,\n                struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:41,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:45,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:49,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:49,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:51,1
    - Dst: ndpi_int_genshin_impact_add_connection
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:52,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:59,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:59,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:60,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:60,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:61,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:61,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:62,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:62,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:64,1
    - Dst: ndpi_int_genshin_impact_add_connection
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:70,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 71
    functionName: ndpi_search_genshin_impact
    functionSourceFile: /src/ndpi/src/lib/protocols/genshin_impact.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_int_genshin_impact_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_genshin_impact(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                       struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/genshin_impact.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: init_genshin_impact_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/genshin_impact.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_genshin_impact_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/coap.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: ndpi_int_coap_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/coap.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_coap_add_connection (struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: isCoAPport
    functionSourceFile: /src/ndpi/src/lib/protocols/coap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isCoAPport(u_int16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/coap.c:117,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/coap.c:118,1
    - Dst: isCoAPport
      Src: /src/ndpi/src/lib/protocols/coap.c:120,1
    - Dst: isCoAPport
      Src: /src/ndpi/src/lib/protocols/coap.c:120,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/coap.c:122,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/coap.c:126,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/coap.c:136,1
    - Dst: ndpi_int_coap_add_connection
      Src: /src/ndpi/src/lib/protocols/coap.c:137,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/coap.c:145,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 21
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 147
      start: 109
    functionDepth: 6
    functionLinenumber: 109
    functionLinenumberEnd: 147
    functionName: ndpi_search_coap
    functionSourceFile: /src/ndpi/src/lib/protocols/coap.c
    functionUses: 0
    functionsReached:
    - ndpi_int_coap_add_connection
    - ntohs
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_INFO
    - isCoAPport
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_coap(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/coap.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: init_coap_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/coap.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_coap_dissector (struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/ssdp.c:45,1
    - Dst: ndpi_user_agent_set
      Src: /src/ndpi/src/lib/protocols/ssdp.c:49,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/ssdp.c:51,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/ssdp.c:57,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:61,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:63,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:69,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:71,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:77,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:79,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:85,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:87,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:93,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:95,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:101,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:103,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:109,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:111,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:117,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:119,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:125,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:127,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:133,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:135,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:141,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:143,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:149,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:151,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:157,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:159,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:165,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:167,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:173,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:175,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:181,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:183,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:189,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:191,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:197,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:199,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:205,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:207,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 143
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 211
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 211
    functionName: ssdp_parse_lines
    functionSourceFile: /src/ndpi/src/lib/protocols/ssdp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_hostname_sni_set
    - NDPI_LOG_DBG2
    - ndpi_malloc
    - ndpi_user_agent_set
    - ndpi_parse_packet_line_info
    linkageType: ''
    returnType: void
    signature: "void ssdp_parse_lines(struct ndpi_detection_module_struct\n\t\t\t
      \    *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ssdp_parse_lines
      Src: /src/ndpi/src/lib/protocols/ssdp.c:217,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ssdp.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: ndpi_int_ssdp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ssdp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    - ssdp_parse_lines
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ssdp_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ssdp.c:226,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/ssdp.c:233,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/ssdp.c:233,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssdp.c:235,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/ssdp.c:235,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ssdp.c:238,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/ssdp.c:238,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/ssdp.c:239,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ssdp.c:243,1
    - Dst: ndpi_int_ssdp_add_connection
      Src: /src/ndpi/src/lib/protocols/ssdp.c:244,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/ssdp.c:250,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/ssdp.c:250,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ssdp.c:251,1
    - Dst: ndpi_int_ssdp_add_connection
      Src: /src/ndpi/src/lib/protocols/ssdp.c:252,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ssdp.c:258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 259
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 259
    functionName: ndpi_search_ssdp
    functionSourceFile: /src/ndpi/src/lib/protocols/ssdp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - ndpi_malloc
    - NDPI_LOG_DBG
    - ndpi_int_ssdp_add_connection
    - NDPI_LOG_INFO
    - strlen
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ssdp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ssdp.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: init_ssdp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ssdp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ssdp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: ndpi_int_merakicloud_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/merakicloud.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_merakicloud_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                                struct
      ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:41,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:43,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:43,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:45,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:45,1
    - Dst: ndpi_int_merakicloud_add_connection
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:46,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: ndpi_search_merakicloud
    functionSourceFile: /src/ndpi/src/lib/protocols/merakicloud.c
    functionUses: 0
    functionsReached:
    - ntohs
    - ndpi_int_merakicloud_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_merakicloud(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/merakicloud.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: init_merakicloud_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/merakicloud.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_merakicloud_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/line.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/line.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: ndpi_int_line_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/line.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_line_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                         struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/line.c:43,1
    - Dst: ndpi_int_line_add_connection
      Src: /src/ndpi/src/lib/protocols/line.c:59,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/line.c:63,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/line.c:63,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/line.c:64,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/line.c:64,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/line.c:65,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/line.c:65,1
    - Dst: ndpi_int_line_add_connection
      Src: /src/ndpi/src/lib/protocols/line.c:69,1
    - Dst: is_rtp_or_rtcp
      Src: /src/ndpi/src/lib/protocols/line.c:86,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/line.c:89,1
    - Dst: ndpi_int_line_add_connection
      Src: /src/ndpi/src/lib/protocols/line.c:99,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/line.c:101,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/line.c:109,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 39
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 111
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 111
    functionName: ndpi_search_line
    functionSourceFile: /src/ndpi/src/lib/protocols/line.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - is_rtp_or_rtcp
    - ndpi_int_line_add_connection
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_line(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/line.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: init_line_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/line.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_line_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/iec62056.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/iec62056.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: ndpi_int_iec62056_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/iec62056.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_iec62056_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                             struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/iec62056.c:48,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/iec62056.c:54,1
    - Dst: ndpi_crc16_x25
      Src: /src/ndpi/src/lib/protocols/iec62056.c:54,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/iec62056.c:55,1
    - Dst: ndpi_int_iec62056_add_connection
      Src: /src/ndpi/src/lib/protocols/iec62056.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/iec62056.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: ndpi_search_iec62056
    functionSourceFile: /src/ndpi/src/lib/protocols/iec62056.c
    functionUses: 0
    functionsReached:
    - le16toh
    - get_u_int16_t
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_crc16_x25
    - ndpi_int_iec62056_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_iec62056(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/iec62056.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: init_iec62056_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/iec62056.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_iec62056_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/uftp.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/uftp.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: ndpi_int_uftp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/uftp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_uftp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                         struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/uftp.c:46,1
    - Dst: ndpi_int_uftp_add_connection
      Src: /src/ndpi/src/lib/protocols/uftp.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/uftp.c:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: ndpi_search_uftp
    functionSourceFile: /src/ndpi/src/lib/protocols/uftp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_uftp_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_uftp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/uftp.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: init_uftp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/uftp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_uftp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/lisp.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: ndpi_int_lisp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/lisp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_lisp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/lisp.c:42,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/lisp.c:43,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/lisp.c:48,1
    - Dst: ndpi_int_lisp_add_connection
      Src: /src/ndpi/src/lib/protocols/lisp.c:49,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/lisp.c:57,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/lisp.c:64,1
    - Dst: ndpi_int_lisp_add_connection
      Src: /src/ndpi/src/lib/protocols/lisp.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/lisp.c:72,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: ndpi_check_lisp
    functionSourceFile: /src/ndpi/src/lib/protocols/lisp.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_INFO
    - ndpi_int_lisp_add_connection
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_check_lisp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/lisp.c:77,1
    - Dst: ndpi_check_lisp
      Src: /src/ndpi/src/lib/protocols/lisp.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 7
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: ndpi_search_lisp
    functionSourceFile: /src/ndpi/src/lib/protocols/lisp.c
    functionUses: 0
    functionsReached:
    - ndpi_check_lisp
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_lisp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/lisp.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: init_lisp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/lisp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_lisp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/hislip.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hislip.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: ndpi_int_hislip_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/hislip.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_hislip_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                           struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/hislip.c:49,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/hislip.c:52,1
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/protocols/hislip.c:53,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/hislip.c:53,1
    - Dst: ndpi_int_hislip_add_connection
      Src: /src/ndpi/src/lib/protocols/hislip.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/hislip.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: ndpi_search_hislip
    functionSourceFile: /src/ndpi/src/lib/protocols/hislip.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - ndpi_ntohll
    - NDPI_LOG_DBG
    - get_u_int64_t
    - ndpi_int_hislip_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_hislip(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/hislip.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: init_hislip_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/hislip.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_hislip_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/guildwars2.c:36,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/guildwars2.c:42,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/guildwars2.c:43,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/guildwars2.c:44,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/guildwars2.c:46,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/guildwars2.c:47,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/guildwars2.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: ndpi_search_guildwars2_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/guildwars2.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_guildwars2_tcp(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/guildwars2.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: init_guildwars2_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/guildwars2.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_guildwars2_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: ndpi_int_ubntac2_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ubntac2.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_ubntac2_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:42,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:45,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:46,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:46,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:47,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:47,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:48,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:49,1
    - Dst: ndpi_int_ubntac2_add_connection
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:50,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:56,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:58,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:61,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:62,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:71,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 72
    functionName: ndpi_search_ubntac2
    functionSourceFile: /src/ndpi/src/lib/protocols/ubntac2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ntohs
    - NDPI_LOG_DBG2
    - get_u_int16_t
    - ndpi_min
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_int_ubntac2_add_connection
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ubntac2(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ubntac2.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: init_ubntac2_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ubntac2.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ubntac2_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:35,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:36,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:40,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:41,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:41,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:42,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:43,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:43,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:46,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:48,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:49,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:49,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:52,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:53,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:53,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:54,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:55,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:55,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:58,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:59,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:59,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:60,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:61,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/apple_push.c:61,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 16
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 66
    functionName: is_apple_push_addr
    functionSourceFile: /src/ndpi/src/lib/protocols/apple_push.c
    functionUses: 0
    functionsReached:
    - ntohl
    - htonl
    linkageType: ''
    returnType: int
    signature: int is_apple_push_addr(const struct ndpi_packet_struct *packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_apple_push_addr
      Src: /src/ndpi/src/lib/protocols/apple_push.c:74,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/apple_push.c:75,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/apple_push.c:76,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/apple_push.c:80,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/apple_push.c:81,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/apple_push.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 5
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: ndpi_check_apple_push
    functionSourceFile: /src/ndpi/src/lib/protocols/apple_push.c
    functionUses: 0
    functionsReached:
    - is_apple_push_addr
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_apple_push(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \ struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/apple_push.c:91,1
    - Dst: ndpi_check_apple_push
      Src: /src/ndpi/src/lib/protocols/apple_push.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: ndpi_search_apple_push
    functionSourceFile: /src/ndpi/src/lib/protocols/apple_push.c
    functionUses: 0
    functionsReached:
    - ndpi_check_apple_push
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_apple_push(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/apple_push.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: init_apple_push_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/apple_push.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_apple_push_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mongodb.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: set_mongodb_detected
    functionSourceFile: /src/ndpi/src/lib/protocols/mongodb.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void set_mongodb_detected(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mongodb.c:71,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/mongodb.c:75,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/mongodb.c:80,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/mongodb.c:81,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mongodb.c:83,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mongodb.c:84,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/mongodb.c:88,1
    - Dst: set_mongodb_detected
      Src: /src/ndpi/src/lib/protocols/mongodb.c:97,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/mongodb.c:110,1
    - Dst: set_mongodb_detected
      Src: /src/ndpi/src/lib/protocols/mongodb.c:112,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mongodb.c:117,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mongodb.c:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 121
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 121
    functionName: ndpi_check_mongodb
    functionSourceFile: /src/ndpi/src/lib/protocols/mongodb.c
    functionUses: 0
    functionsReached:
    - memcpy
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - set_mongodb_detected
    - le32toh
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_mongodb(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mongodb.c:128,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mongodb.c:132,1
    - Dst: ndpi_check_mongodb
      Src: /src/ndpi/src/lib/protocols/mongodb.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 7
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: ndpi_search_mongodb
    functionSourceFile: /src/ndpi/src/lib/protocols/mongodb.c
    functionUses: 0
    functionsReached:
    - ndpi_check_mongodb
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_mongodb(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\tstruct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mongodb.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: init_mongodb_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mongodb.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mongodb_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/kafka.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/kafka.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ndpi_int_kafka_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/kafka.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_kafka_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                          struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/kafka.c:45,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/kafka.c:53,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/kafka.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kafka.c:55,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/kafka.c:60,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/kafka.c:60,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/kafka.c:61,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/kafka.c:61,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kafka.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kafka.c:72,1
    - Dst: ndpi_is_printable_buffer
      Src: /src/ndpi/src/lib/protocols/kafka.c:75,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kafka.c:77,1
    - Dst: ndpi_int_kafka_add_connection
      Src: /src/ndpi/src/lib/protocols/kafka.c:81,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kafka.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 86
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 86
    functionName: ndpi_search_kafka
    functionSourceFile: /src/ndpi/src/lib/protocols/kafka.c
    functionUses: 0
    functionsReached:
    - ntohs
    - ndpi_int_kafka_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - ndpi_is_printable_buffer
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_kafka(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/kafka.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: init_kafka_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/kafka.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_kafka_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ipp.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: ndpi_int_ipp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ipp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ipp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\tstruct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ipp.c:43,1
    - Dst: LINE_STARTS
      Src: /src/ndpi/src/lib/protocols/ipp.c:49,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ipp.c:50,1
    - Dst: ndpi_int_ipp_add_connection
      Src: /src/ndpi/src/lib/protocols/ipp.c:51,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ipp.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: ndpi_search_ipp
    functionSourceFile: /src/ndpi/src/lib/protocols/ipp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - LINE_STARTS
    - ndpi_int_ipp_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ipp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ipp.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: init_ipp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ipp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ipp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/smb.c:33,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/smb.c:37,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/smb.c:51,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/smb.c:53,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/smb.c:54,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/smb.c:67,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/smb.c:70,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/smb.c:71,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/smb.c:72,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/smb.c:79,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 80
    functionName: ndpi_search_smb_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/smb.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_search_smb_tcp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/smb.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: init_smb_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/smb.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_smb_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:56,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: ndpi_int_mail_smtp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_smtp.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_mail_smtp_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \     *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_user_pwd_payload_copy
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:85,1
    - Dst: ndpi_base64_decode
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:86,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:86,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:98,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:100,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:103,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:105,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:110,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:111,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - line
    - line_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 116
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 116
    functionName: get_credentials_auth_plain
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_smtp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - memcpy
    - ndpi_user_pwd_payload_copy
    - ndpi_min
    - ndpi_free
    - ndpi_base64_decode
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void get_credentials_auth_plain(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                       struct ndpi_flow_struct
      *flow,\n\t\t\t\t       const u_int8_t *line, u_int16_t line_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:124,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:128,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:128,1
    - Dst: NDPI_PARSE_PACKET_LINE_INFO
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:133,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:138,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:154,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:155,1
    - Dst: ndpi_match_hostname_protocol
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:157,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:159,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:162,1
    - Dst: smtpInitExtraPacketProcessing
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:163,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:169,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:171,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:173,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:175,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:182,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:183,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:186,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:191,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:196,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:198,1
    - Dst: get_credentials_auth_plain
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:208,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:216,1
    - Dst: ndpi_user_pwd_payload_copy
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:228,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:232,1
    - Dst: ndpi_base64_decode
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:235,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:235,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:240,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:243,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:246,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:248,1
    - Dst: ndpi_user_pwd_payload_copy
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:255,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:259,1
    - Dst: ndpi_base64_decode
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:262,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:262,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:267,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:270,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:273,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:278,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:287,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:295,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:303,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:305,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:307,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:319,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:323,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:326,1
    - Dst: ndpi_int_mail_smtp_add_connection
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:333,1
    - Dst: smtpInitExtraPacketProcessing
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:334,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:347,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:347,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:348,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:348,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:349,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:354,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 154
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 355
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 355
    functionName: ndpi_search_mail_smtp_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_smtp.c
    functionUses: 0
    functionsReached:
    - ndpi_hostname_sni_set
    - ndpi_free
    - ndpi_memcasecmp
    - snprintf
    - strlen
    - ndpi_set_risk
    - smtpInitExtraPacketProcessing
    - ntohs
    - NDPI_LOG_DBG2
    - get_credentials_auth_plain
    - NDPI_LOG_DBG
    - ndpi_base64_decode
    - ndpi_user_pwd_payload_copy
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - ndpi_int_mail_smtp_add_connection
    - NDPI_LOG_INFO
    - ndpi_match_hostname_protocol
    - memcpy
    - printf
    - get_u_int16_t
    - NDPI_PARSE_PACKET_LINE_INFO
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_mail_smtp_tcp(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:376,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:381,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:386,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:389,1
    - Dst: switch_extra_dissection_to_tls
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:392,1
    - Dst: ndpi_search_mail_smtp_tcp
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:398,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 409
      start: 359
    functionDepth: 7
    functionLinenumber: 359
    functionLinenumberEnd: 409
    functionName: ndpi_extra_search_mail_smtp_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_smtp.c
    functionUses: 0
    functionsReached:
    - printf
    - memcmp
    - NDPI_LOG_DBG
    - ndpi_search_mail_smtp_tcp
    - ndpi_set_detected_protocol
    - switch_extra_dissection_to_tls
    linkageType: ''
    returnType: int
    signature: "int ndpi_extra_search_mail_smtp_tcp(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: smtpInitExtraPacketProcessing
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_smtp.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void smtpInitExtraPacketProcessing(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mail_smtp.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: init_mail_smtp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_smtp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mail_smtp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: ndpi_rx_header
    functionSourceFile: /src/ndpi/src/lib/protocols/rx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_rx_header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/rx.c:86,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rx.c:91,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rx.c:114,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rx.c:167,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rx.c:171,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rx.c:179,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/rx.c:191,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/rx.c:192,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rx.c:197,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 79
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 204
      start: 80
    functionDepth: 5
    functionLinenumber: 80
    functionLinenumberEnd: 204
    functionName: ndpi_check_rx
    functionSourceFile: /src/ndpi/src/lib/protocols/rx.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_set_detected_protocol
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_rx(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                         struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rx.c:209,1
    - Dst: ndpi_check_rx
      Src: /src/ndpi/src/lib/protocols/rx.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: ndpi_search_rx
    functionSourceFile: /src/ndpi/src/lib/protocols/rx.c
    functionUses: 0
    functionsReached:
    - ndpi_check_rx
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_rx(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                          struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/rx.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 221
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 221
    functionName: init_rx_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/rx.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_rx_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/sflow.c:34,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/sflow.c:39,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/sflow.c:39,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/sflow.c:41,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/sflow.c:41,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/sflow.c:42,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/sflow.c:42,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/sflow.c:43,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/sflow.c:46,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/sflow.c:47,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/sflow.c:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: ndpi_search_sflow
    functionSourceFile: /src/ndpi/src/lib/protocols/sflow.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_sflow(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/sflow.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: init_sflow_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/sflow.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_sflow_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:33,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:36,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:38,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:43,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:60,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:63,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:67,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:72,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:75,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:79,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:84,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:87,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:92,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:101,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:106,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 107
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 107
    functionName: ndpi_search_mikrotik
    functionSourceFile: /src/ndpi/src/lib/protocols/mikrotik.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - ndpi_set_detected_protocol
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_mikrotik(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mikrotik.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: init_mikrotik_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mikrotik.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mikrotik_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ldp.c:57,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ldp.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: ndpi_int_ldp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ldp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ldp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                        struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ldp.c:67,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ldp.c:70,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/ldp.c:70,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ldp.c:71,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/ldp.c:71,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ldp.c:75,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/ldp.c:75,1
    - Dst: ndpi_int_ldp_add_connection
      Src: /src/ndpi/src/lib/protocols/ldp.c:77,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ldp.c:81,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/ldp.c:81,1
    - Dst: ndpi_int_ldp_add_connection
      Src: /src/ndpi/src/lib/protocols/ldp.c:85,1
    - Dst: ndpi_int_ldp_add_connection
      Src: /src/ndpi/src/lib/protocols/ldp.c:106,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ldp.c:114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 115
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 115
    functionName: ndpi_search_ldp
    functionSourceFile: /src/ndpi/src/lib/protocols/ldp.c
    functionUses: 0
    functionsReached:
    - ntohs
    - ndpi_int_ldp_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ldp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ldp.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: init_ldp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ldp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ldp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: dhcp_packet
    functionSourceFile: /src/ndpi/src/lib/protocols/dhcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON dhcp_packet
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dhcp.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: ndpi_int_dhcp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/dhcp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_dhcp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - magic
    argTypes:
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: is_dhcp_magic
    functionSourceFile: /src/ndpi/src/lib/protocols/dhcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_dhcp_magic(uint8_t *magic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dhcp.c:79,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/dhcp.c:88,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/dhcp.c:88,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/dhcp.c:89,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/dhcp.c:89,1
    - Dst: is_dhcp_magic
      Src: /src/ndpi/src/lib/protocols/dhcp.c:90,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/dhcp.c:93,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/dhcp.c:108,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/dhcp.c:128,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dhcp.c:130,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/dhcp.c:135,1
    - Dst: ndpi_int_dhcp_add_connection
      Src: /src/ndpi/src/lib/protocols/dhcp.c:136,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/dhcp.c:147,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/dhcp.c:153,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/dhcp.c:160,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/dhcp.c:167,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/dhcp.c:180,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/dhcp.c:181,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/dhcp.c:187,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/dhcp.c:190,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dhcp.c:197,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 59
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 199
      start: 74
    functionDepth: 6
    functionLinenumber: 74
    functionLinenumberEnd: 199
    functionName: ndpi_search_dhcp_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/dhcp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_dhcp_add_connection
    - ndpi_hostname_sni_set
    - NDPI_LOG_DBG2
    - ndpi_min
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - strncpy
    - NDPI_LOG_INFO
    - is_dhcp_magic
    - ndpi_snprintf
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_dhcp_udp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dhcp.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: init_dhcp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dhcp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dhcp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/sonos.c:32,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/sonos.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: ndpi_sonos_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/sonos.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_sonos_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/sonos.c:39,1
    - Dst: ndpi_is_public_ipv4
      Src: /src/ndpi/src/lib/protocols/sonos.c:41,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/sonos.c:41,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/sonos.c:42,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/sonos.c:44,1
    - Dst: ndpi_sonos_add_connection
      Src: /src/ndpi/src/lib/protocols/sonos.c:47,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/sonos.c:50,1
    - Dst: ndpi_sonos_add_connection
      Src: /src/ndpi/src/lib/protocols/sonos.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/sonos.c:60,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: ndpi_search_sonos
    functionSourceFile: /src/ndpi/src/lib/protocols/sonos.c
    functionUses: 0
    functionsReached:
    - ndpi_sonos_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - ndpi_is_public_ipv4
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_search_sonos(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/sonos.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: init_sonos_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/sonos.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_sonos_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/viber.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/viber.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: viber_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/viber.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void viber_add_connection(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/viber.c:43,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/viber.c:48,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/viber.c:55,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/viber.c:58,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/viber.c:58,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/viber.c:60,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/viber.c:60,1
    - Dst: viber_add_connection
      Src: /src/ndpi/src/lib/protocols/viber.c:63,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/viber.c:66,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/viber.c:66,1
    - Dst: viber_add_connection
      Src: /src/ndpi/src/lib/protocols/viber.c:69,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/viber.c:74,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/viber.c:79,1
    - Dst: viber_add_connection
      Src: /src/ndpi/src/lib/protocols/viber.c:88,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/viber.c:92,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/viber.c:97,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 34
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 98
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 98
    functionName: ndpi_search_viber
    functionSourceFile: /src/ndpi/src/lib/protocols/viber.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_LOG_DBG2
    - get_u_int16_t
    - le16toh
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - viber_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_viber(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/viber.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: init_viber_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/viber.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_viber_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bfd.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/bfd.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ndpi_int_bfd_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/bfd.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_bfd_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                             struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bfd.c:48,1
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/protocols/bfd.c:49,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/bfd.c:49,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bfd.c:50,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/bfd.c:50,1
    - Dst: ndpi_int_bfd_add_connection
      Src: /src/ndpi/src/lib/protocols/bfd.c:52,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bfd.c:59,1
    - Dst: ndpi_int_bfd_add_connection
      Src: /src/ndpi/src/lib/protocols/bfd.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bfd.c:69,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: ndpi_search_bfd
    functionSourceFile: /src/ndpi/src/lib/protocols/bfd.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - ndpi_ntohll
    - ndpi_int_bfd_add_connection
    - get_u_int64_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_bfd(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/bfd.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: init_bfd_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/bfd.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_bfd_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/jrmi.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: ndpi_int_jrmi_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/jrmi.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_jrmi_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/jrmi.c:38,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/jrmi.c:46,1
    - Dst: ndpi_int_jrmi_add_connection
      Src: /src/ndpi/src/lib/protocols/jrmi.c:47,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/jrmi.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: ndpi_search_jrmi
    functionSourceFile: /src/ndpi/src/lib/protocols/jrmi.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_jrmi_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_jrmi(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/jrmi.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: init_jrmi_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/jrmi.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_jrmi_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:36,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:40,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:40,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:41,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:41,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:42,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:42,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:42,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:42,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:44,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:45,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 52
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 52
    functionName: ndpi_search_dingtalk
    functionSourceFile: /src/ndpi/src/lib/protocols/dingtalk.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_dingtalk(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dingtalk.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: init_dingtalk_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dingtalk.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dingtalk_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: is_version_forcing_vn
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_version_forcing_vn(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: is_version_gquic
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_version_gquic(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_version_forcing_vn
      Src: /src/ndpi/src/lib/protocols/quic.c:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: is_version_quic
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_version_forcing_vn
    linkageType: ''
    returnType: int
    signature: int is_version_quic(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_version_gquic
      Src: /src/ndpi/src/lib/protocols/quic.c:92,1
    - Dst: is_version_quic
      Src: /src/ndpi/src/lib/protocols/quic.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: is_version_valid
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_version_gquic
    - is_version_quic
    linkageType: ''
    returnType: int
    signature: int is_version_valid(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_version_forcing_vn
      Src: /src/ndpi/src/lib/protocols/quic.c:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 125
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 125
    functionName: get_u8_quic_ver
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_version_forcing_vn
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_u8_quic_ver(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - version
    - max_version
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: is_quic_ver_less_than
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_quic_ver_less_than(uint32_t version, uint8_t max_version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_u8_quic_ver
      Src: /src/ndpi/src/lib/protocols/quic.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - version
    - min_version
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: is_quic_ver_greater_than
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - get_u8_quic_ver
    linkageType: ''
    returnType: int
    signature: int is_quic_ver_greater_than(uint32_t version, uint8_t min_version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_version_gquic
      Src: /src/ndpi/src/lib/protocols/quic.c:138,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/quic.c:139,1
    - Dst: atoi
      Src: /src/ndpi/src/lib/protocols/quic.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: get_u8_gquic_ver
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_version_gquic
    - ntohl
    - atoi
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_u8_gquic_ver(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - version
    - max_version
    argTypes:
    - uint32_t
    - uint8_t
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: is_gquic_ver_less_than
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_gquic_ver_less_than(uint32_t version, uint8_t max_version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_quic_ver_greater_than
      Src: /src/ndpi/src/lib/protocols/quic.c:167,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 168
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 168
    functionName: is_version_supported
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_quic_ver_greater_than
    linkageType: ''
    returnType: int
    signature: int is_version_supported(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_version_quic
      Src: /src/ndpi/src/lib/protocols/quic.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: is_version_with_encrypted_header
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_version_quic
    linkageType: ''
    returnType: int
    signature: int is_version_with_encrypted_header(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_version_quic
      Src: /src/ndpi/src/lib/protocols/quic.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: is_version_with_tls
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_version_quic
    linkageType: ''
    returnType: int
    signature: int is_version_with_tls(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_version_quic
      Src: /src/ndpi/src/lib/protocols/quic.c:182,1
    - Dst: is_quic_ver_greater_than
      Src: /src/ndpi/src/lib/protocols/quic.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: is_version_with_var_int_transport_params
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_quic_ver_greater_than
    - is_version_quic
    linkageType: ''
    returnType: int
    signature: int is_version_with_var_int_transport_params(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_version_quic
      Src: /src/ndpi/src/lib/protocols/quic.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: is_version_with_ietf_long_header
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_version_quic
    linkageType: ''
    returnType: int
    signature: int is_version_with_ietf_long_header(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_quic_ver_less_than
      Src: /src/ndpi/src/lib/protocols/quic.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: is_version_with_v1_labels
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_quic_ver_less_than
    linkageType: ''
    returnType: int
    signature: int is_version_with_v1_labels(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: is_version_quic_v2
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_version_quic_v2(uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:210,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:211,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:212,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:213,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:214,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:215,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:216,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:217,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:218,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:219,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:220,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:221,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:222,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:223,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:224,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:225,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:226,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:227,1
    - Dst: is_version_forcing_vn
      Src: /src/ndpi/src/lib/protocols/quic.c:230,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/quic.c:231,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/quic.c:236,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/quic.c:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 89
    argCount: 3
    argNames:
    - buf
    - buf_len
    - version
    argTypes:
    - char*
    - int
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 243
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 243
    functionName: ndpi_quic_version2str
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 1
    functionsReached:
    - ndpi_snprintf
    - snprintf
    - strncpy
    - is_version_forcing_vn
    linkageType: ''
    returnType: char
    signature: char *ndpi_quic_version2str(char *buf, int buf_len, u_int32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/quic.c:253,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/quic.c:256,1
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/protocols/quic.c:259,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/quic.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - uint8_t*
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: quic_len
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - ndpi_ntohll
    - get_u_int64_t
    - ntohl
    - ntohs
    linkageType: ''
    returnType: int
    signature: int quic_len(const uint8_t *buf, uint64_t *value)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: quic_len_buffer_still_required
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_len_buffer_still_required(uint8_t value)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/quic.c:285,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/quic.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - version
    argTypes:
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: gquic_get_u16
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - ntohs
    - le16toh
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t gquic_get_u16(const uint8_t *buf, uint32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gpg_strerror_r
      Src: /src/ndpi/src/lib/protocols/quic.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - err
    - buf
    - buflen
    argTypes:
    - gpg_error_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: __gcry_err
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - gpg_strerror_r
    linkageType: ''
    returnType: char
    signature: char *__gcry_err(gpg_error_t err, char *buf, size_t buflen)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: pntoh64
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t pntoh64(const void *p)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 323
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 323
    functionName: phton64
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void phton64(uint8_t *p, uint64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - orig
    - len
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: memdup
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *memdup(const uint8_t *orig, size_t len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/ndpi/src/lib/protocols/quic.c:374,1
    - Dst: gcry_md_setkey
      Src: /src/ndpi/src/lib/protocols/quic.c:378,1
    - Dst: gcry_md_close
      Src: /src/ndpi/src/lib/protocols/quic.c:380,1
    - Dst: gcry_md_write
      Src: /src/ndpi/src/lib/protocols/quic.c:383,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:384,1
    - Dst: gcry_md_read
      Src: /src/ndpi/src/lib/protocols/quic.c:384,1
    - Dst: gcry_md_get_algo_dlen
      Src: /src/ndpi/src/lib/protocols/quic.c:384,1
    - Dst: gcry_md_close
      Src: /src/ndpi/src/lib/protocols/quic.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - algo
    - digest
    - buffer
    - length
    - key
    - keylen
    argTypes:
    - int
    - void*
    - void*
    - size_t
    - void*
    - size_t
    constantsTouched: []
    func_position:
      end: 387
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 387
    functionName: ws_hmac_buffer
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - memcpy
    - gcry_md_get_algo_dlen
    - gcry_md_open
    - gcry_md_close
    - gcry_md_setkey
    - gcry_md_read
    - gcry_md_write
    linkageType: ''
    returnType: gcry_error_t
    signature: "gcry_error_t ws_hmac_buffer(int algo, void *digest, const void *buffer,\n\t\t\t\t
      \  size_t length, const void *key, size_t keylen)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcry_md_open
      Src: /src/ndpi/src/lib/protocols/quic.c:405,1
    - Dst: gcry_md_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:411,1
    - Dst: gcry_md_setkey
      Src: /src/ndpi/src/lib/protocols/quic.c:412,1
    - Dst: gcry_md_write
      Src: /src/ndpi/src/lib/protocols/quic.c:414,1
    - Dst: gcry_md_write
      Src: /src/ndpi/src/lib/protocols/quic.c:416,1
    - Dst: gcry_md_write
      Src: /src/ndpi/src/lib/protocols/quic.c:419,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:421,1
    - Dst: gcry_md_read
      Src: /src/ndpi/src/lib/protocols/quic.c:421,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:422,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/quic.c:422,1
    - Dst: gcry_md_close
      Src: /src/ndpi/src/lib/protocols/quic.c:425,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 7
    argNames:
    - hashalgo
    - prk
    - prk_len
    - info
    - info_len
    - out
    - out_len
    argTypes:
    - int
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 427
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 427
    functionName: hkdf_expand
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_min
    - gcry_md_reset
    - gcry_md_open
    - gcry_md_close
    - gcry_md_setkey
    - gcry_md_read
    - gcry_md_write
    linkageType: ''
    returnType: gcry_error_t
    signature: "gcry_error_t hkdf_expand(int hashalgo, const uint8_t *prk, uint32_t
      prk_len,\n\t\t\t\tconst uint8_t *info, uint32_t info_len,\n\t\t\t\tuint8_t *out,
      uint32_t out_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ws_hmac_buffer
      Src: /src/ndpi/src/lib/protocols/quic.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - hashalgo
    - salt
    - salt_len
    - ikm
    - ikm_len
    - prk
    argTypes:
    - int
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 438
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 438
    functionName: hkdf_extract
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - ws_hmac_buffer
    linkageType: ''
    returnType: gcry_error_t
    signature: "gcry_error_t hkdf_extract(int hashalgo, const uint8_t *salt, size_t
      salt_len,\n\t\t\t\t const uint8_t *ikm, size_t ikm_len, uint8_t *prk)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:477,1
    - Dst: g_byte_array_new
      Src: /src/ndpi/src/lib/protocols/quic.c:484,1
    - Dst: g_byte_array_append
      Src: /src/ndpi/src/lib/protocols/quic.c:486,1
    - Dst: g_byte_array_append
      Src: /src/ndpi/src/lib/protocols/quic.c:489,1
    - Dst: g_byte_array_append
      Src: /src/ndpi/src/lib/protocols/quic.c:490,1
    - Dst: g_byte_array_append
      Src: /src/ndpi/src/lib/protocols/quic.c:491,1
    - Dst: g_byte_array_append
      Src: /src/ndpi/src/lib/protocols/quic.c:493,1
    - Dst: g_byte_array_append
      Src: /src/ndpi/src/lib/protocols/quic.c:495,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:503,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:507,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:509,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:511,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:514,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:517,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/quic.c:522,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:524,1
    - Dst: hkdf_expand
      Src: /src/ndpi/src/lib/protocols/quic.c:527,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:528,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:531,1
    - Dst: __gcry_err
      Src: /src/ndpi/src/lib/protocols/quic.c:531,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:532,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 9
    argNames:
    - ndpi_struct
    - md
    - secret
    - label_prefix
    - label
    - context_hash
    - context_length
    - out_len
    - out
    argTypes:
    - struct ndpi_detection_module_struct*
    - int
    - StringInfo*
    - char*
    - char*
    - uint8_t*
    - uint8_t
    - uint16_t
    - uint8_t**
    constantsTouched: []
    func_position:
      end: 538
      start: 450
    functionDepth: 3
    functionLinenumber: 450
    functionLinenumberEnd: 538
    functionName: tls13_hkdf_expand_label_context
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - memcpy
    - hkdf_expand
    - ndpi_free
    - ndpi_malloc
    - NDPI_LOG_DBG
    - g_byte_array_append
    - g_byte_array_new
    - __gcry_err
    linkageType: ''
    returnType: int
    signature: "int tls13_hkdf_expand_label_context(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t   int md, const StringInfo *secret,\n\t\t\t\t\t   const
      char *label_prefix, const char *label,\n\t\t\t\t\t   const uint8_t *context_hash,
      uint8_t context_length,\n\t\t\t\t\t   uint16_t out_len, uint8_t **out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls13_hkdf_expand_label_context
      Src: /src/ndpi/src/lib/protocols/quic.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ndpi_struct
    - md
    - secret
    - label_prefix
    - label
    - out_len
    - out
    argTypes:
    - struct ndpi_detection_module_struct*
    - int
    - StringInfo*
    - char*
    - char*
    - uint16_t
    - unsigned char**
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 4
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: tls13_hkdf_expand_label
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - tls13_hkdf_expand_label_context
    linkageType: ''
    returnType: int
    signature: "int tls13_hkdf_expand_label(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  int md, const StringInfo *secret,\n\t\t\t\t   const char *label_prefix, const
      char *label,\n\t\t\t\t   uint16_t out_len, unsigned char **out)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tls13_hkdf_expand_label
      Src: /src/ndpi/src/lib/protocols/quic.c:558,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:559,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - ndpi_struct
    - hash_algo
    - secret
    - secret_len
    - label
    - out
    - out_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - int
    - uint8_t*
    - uint32_t
    - char*
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 564
      start: 552
    functionDepth: 5
    functionLinenumber: 552
    functionLinenumberEnd: 564
    functionName: quic_hkdf_expand_label
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - tls13_hkdf_expand_label
    - memcpy
    - ndpi_free
    linkageType: ''
    returnType: int
    signature: "int quic_hkdf_expand_label(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \ int hash_algo, uint8_t *secret, uint32_t secret_len,\n\t\t\t\t  const char
      *label, uint8_t *out, uint32_t out_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcry_cipher_close
      Src: /src/ndpi/src/lib/protocols/quic.c:567,1
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/quic.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hp_cipher
    argTypes:
    - quic_hp_cipher*
    constantsTouched: []
    func_position:
      end: 571
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 571
    functionName: quic_hp_cipher_reset
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - gcry_cipher_close
    - memset
    linkageType: ''
    returnType: void
    signature: void quic_hp_cipher_reset(quic_hp_cipher *hp_cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcry_cipher_close
      Src: /src/ndpi/src/lib/protocols/quic.c:574,1
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/quic.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pp_cipher
    argTypes:
    - quic_pp_cipher*
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: quic_pp_cipher_reset
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - gcry_cipher_close
    - memset
    linkageType: ''
    returnType: void
    signature: void quic_pp_cipher_reset(quic_pp_cipher *pp_cipher)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quic_hp_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:581,1
    - Dst: quic_pp_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ciphers
    argTypes:
    - quic_ciphers*
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: quic_ciphers_reset
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - quic_hp_cipher_reset
    - quic_pp_cipher_reset
    linkageType: ''
    returnType: void
    signature: void quic_ciphers_reset(quic_ciphers *ciphers)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quic_hkdf_expand_label
      Src: /src/ndpi/src/lib/protocols/quic.c:597,1
    - Dst: gcry_cipher_setkey
      Src: /src/ndpi/src/lib/protocols/quic.c:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - ndpi_struct
    - hp_cipher
    - hash_algo
    - key_length
    - secret
    - version
    argTypes:
    - struct ndpi_detection_module_struct*
    - quic_hp_cipher*
    - int
    - uint8_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 602
      start: 588
    functionDepth: 6
    functionLinenumber: 588
    functionLinenumberEnd: 602
    functionName: quic_hp_cipher_init
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - quic_hkdf_expand_label
    - gcry_cipher_setkey
    linkageType: ''
    returnType: int
    signature: "int quic_hp_cipher_init(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      quic_hp_cipher *hp_cipher, int hash_algo,\n\t\t\t       uint8_t key_length,
      uint8_t *secret,\n\t\t\t       uint32_t version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quic_hkdf_expand_label
      Src: /src/ndpi/src/lib/protocols/quic.c:617,1
    - Dst: quic_hkdf_expand_label
      Src: /src/ndpi/src/lib/protocols/quic.c:618,1
    - Dst: gcry_cipher_setkey
      Src: /src/ndpi/src/lib/protocols/quic.c:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - ndpi_struct
    - pp_cipher
    - hash_algo
    - key_length
    - secret
    - version
    argTypes:
    - struct ndpi_detection_module_struct*
    - quic_pp_cipher*
    - int
    - uint8_t
    - uint8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 623
      start: 603
    functionDepth: 6
    functionLinenumber: 603
    functionLinenumberEnd: 623
    functionName: quic_pp_cipher_init
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - quic_hkdf_expand_label
    - gcry_cipher_setkey
    linkageType: ''
    returnType: int
    signature: "int quic_pp_cipher_init(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      quic_pp_cipher *pp_cipher, int hash_algo,\n\t\t\t       uint8_t key_length,
      uint8_t *secret,\n\t\t\t       uint32_t version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cipher_algo
    - hp_cipher_mode
    argTypes:
    - int
    - int*
    constantsTouched: []
    func_position:
      end: 638
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 638
    functionName: quic_get_pn_cipher_algo
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int quic_get_pn_cipher_algo(int cipher_algo, int *hp_cipher_mode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quic_hp_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:650,1
    - Dst: quic_get_pn_cipher_algo
      Src: /src/ndpi/src/lib/protocols/quic.c:654,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:655,1
    - Dst: gcry_cipher_open
      Src: /src/ndpi/src/lib/protocols/quic.c:659,1
    - Dst: quic_hp_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:660,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:661,1
    - Dst: quic_hp_cipher_init
      Src: /src/ndpi/src/lib/protocols/quic.c:667,1
    - Dst: quic_hp_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:668,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - ndpi_struct
    - hp_cipher
    - hash_algo
    - cipher_algo
    - secret
    - version
    argTypes:
    - struct ndpi_detection_module_struct*
    - quic_hp_cipher*
    - int
    - int
    - uint8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 675
      start: 644
    functionDepth: 7
    functionLinenumber: 644
    functionLinenumberEnd: 675
    functionName: quic_hp_cipher_prepare
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - quic_hp_cipher_reset
    - quic_get_pn_cipher_algo
    - NDPI_LOG_DBG
    - quic_hp_cipher_init
    - gcry_cipher_open
    linkageType: ''
    returnType: int
    signature: "int quic_hp_cipher_prepare(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 quic_hp_cipher *hp_cipher, int hash_algo,
      int cipher_algo,\n                                  uint8_t *secret, u_int32_t
      version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quic_pp_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:682,1
    - Dst: gcry_cipher_open
      Src: /src/ndpi/src/lib/protocols/quic.c:685,1
    - Dst: quic_pp_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:686,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:687,1
    - Dst: quic_pp_cipher_init
      Src: /src/ndpi/src/lib/protocols/quic.c:693,1
    - Dst: quic_pp_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:694,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - ndpi_struct
    - pp_cipher
    - hash_algo
    - cipher_algo
    - cipher_mode
    - secret
    - version
    argTypes:
    - struct ndpi_detection_module_struct*
    - quic_pp_cipher*
    - int
    - int
    - int
    - uint8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 701
      start: 676
    functionDepth: 7
    functionLinenumber: 676
    functionLinenumberEnd: 701
    functionName: quic_pp_cipher_prepare
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - quic_pp_cipher_reset
    - gcry_cipher_open
    - quic_pp_cipher_init
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: int
    signature: "int quic_pp_cipher_prepare(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 quic_pp_cipher *pp_cipher, int hash_algo,
      int cipher_algo,\n                                  int cipher_mode, uint8_t
      *secret, u_int32_t version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: quic_hp_cipher_prepare
      Src: /src/ndpi/src/lib/protocols/quic.c:708,1
    - Dst: quic_pp_cipher_prepare
      Src: /src/ndpi/src/lib/protocols/quic.c:711,1
    - Dst: quic_hp_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - ndpi_struct
    - ciphers
    - hash_algo
    - cipher_algo
    - cipher_mode
    - secret
    - version
    argTypes:
    - struct ndpi_detection_module_struct*
    - quic_ciphers*
    - int
    - int
    - int
    - uint8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 715
      start: 702
    functionDepth: 8
    functionLinenumber: 702
    functionLinenumberEnd: 715
    functionName: quic_ciphers_prepare
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - quic_hp_cipher_prepare
    - quic_hp_cipher_reset
    - quic_pp_cipher_prepare
    linkageType: ''
    returnType: int
    signature: "int quic_ciphers_prepare(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               quic_ciphers *ciphers, int hash_algo, int cipher_algo,\n
      \                               int cipher_mode, uint8_t *secret, u_int32_t
      version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:736,1
    - Dst: gcry_cipher_encrypt
      Src: /src/ndpi/src/lib/protocols/quic.c:743,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:746,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:771,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 7
    argNames:
    - packet_payload
    - pn_offset
    - hp_cipher
    - hp_cipher_algo
    - first_byte
    - pn
    - loss_bits_negotiated
    argTypes:
    - uint8_t*
    - uint32_t
    - quic_hp_cipher*
    - int
    - uint8_t*
    - uint32_t*
    - int
    constantsTouched: []
    func_position:
      end: 779
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 779
    functionName: quic_decrypt_header
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - gcry_cipher_encrypt
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int quic_decrypt_header(const uint8_t *packet_payload,\n\t\t\t       uint32_t
      pn_offset, quic_hp_cipher *hp_cipher,\n\t\t\t       int hp_cipher_algo, uint8_t
      *first_byte, uint32_t *pn,\n\t\t\t       int loss_bits_negotiated)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:808,1
    - Dst: memdup
      Src: /src/ndpi/src/lib/protocols/quic.c:812,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:823,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:824,1
    - Dst: memdup
      Src: /src/ndpi/src/lib/protocols/quic.c:827,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:829,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:832,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:834,1
    - Dst: phton64
      Src: /src/ndpi/src/lib/protocols/quic.c:836,1
    - Dst: pntoh64
      Src: /src/ndpi/src/lib/protocols/quic.c:836,1
    - Dst: gcry_cipher_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:838,1
    - Dst: gcry_cipher_setiv
      Src: /src/ndpi/src/lib/protocols/quic.c:839,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:841,1
    - Dst: __gcry_err
      Src: /src/ndpi/src/lib/protocols/quic.c:841,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:842,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:843,1
    - Dst: gcry_cipher_authenticate
      Src: /src/ndpi/src/lib/protocols/quic.c:848,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:850,1
    - Dst: __gcry_err
      Src: /src/ndpi/src/lib/protocols/quic.c:850,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:851,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:852,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:856,1
    - Dst: gcry_cipher_decrypt
      Src: /src/ndpi/src/lib/protocols/quic.c:859,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:861,1
    - Dst: __gcry_err
      Src: /src/ndpi/src/lib/protocols/quic.c:861,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:862,1
    - Dst: gcry_cipher_checktag
      Src: /src/ndpi/src/lib/protocols/quic.c:866,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:868,1
    - Dst: __gcry_err
      Src: /src/ndpi/src/lib/protocols/quic.c:868,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:869,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 9
    argNames:
    - ndpi_struct
    - pp_cipher
    - packet_payload
    - packet_payload_len
    - header_length
    - first_byte
    - pkn_len
    - packet_number
    - result
    argTypes:
    - struct ndpi_detection_module_struct*
    - quic_pp_cipher*
    - uint8_t*
    - uint32_t
    - uint32_t
    - uint8_t
    - uint32_t
    - uint64_t
    - quic_decrypt_result_t*
    constantsTouched: []
    func_position:
      end: 875
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 875
    functionName: quic_decrypt_message
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - gcry_cipher_authenticate
    - memcpy
    - memdup
    - ndpi_free
    - phton64
    - gcry_cipher_reset
    - __gcry_err
    - NDPI_LOG_DBG
    - pntoh64
    - gcry_cipher_decrypt
    - gcry_cipher_checktag
    - gcry_cipher_setiv
    linkageType: ''
    returnType: void
    signature: "void quic_decrypt_message(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      quic_pp_cipher *pp_cipher, const uint8_t *packet_payload, uint32_t packet_payload_len,\n\t\t\t\t
      uint32_t header_length, uint8_t first_byte, uint32_t pkn_len,\n\t\t\t\t uint64_t
      packet_number, quic_decrypt_result_t *result)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: hkdf_extract
      Src: /src/ndpi/src/lib/protocols/quic.c:933,1
    - Dst: hkdf_extract
      Src: /src/ndpi/src/lib/protocols/quic.c:937,1
    - Dst: hkdf_extract
      Src: /src/ndpi/src/lib/protocols/quic.c:941,1
    - Dst: is_quic_ver_less_than
      Src: /src/ndpi/src/lib/protocols/quic.c:944,1
    - Dst: hkdf_extract
      Src: /src/ndpi/src/lib/protocols/quic.c:945,1
    - Dst: is_quic_ver_less_than
      Src: /src/ndpi/src/lib/protocols/quic.c:948,1
    - Dst: hkdf_extract
      Src: /src/ndpi/src/lib/protocols/quic.c:949,1
    - Dst: is_quic_ver_less_than
      Src: /src/ndpi/src/lib/protocols/quic.c:952,1
    - Dst: hkdf_extract
      Src: /src/ndpi/src/lib/protocols/quic.c:953,1
    - Dst: is_quic_ver_less_than
      Src: /src/ndpi/src/lib/protocols/quic.c:956,1
    - Dst: hkdf_extract
      Src: /src/ndpi/src/lib/protocols/quic.c:957,1
    - Dst: hkdf_extract
      Src: /src/ndpi/src/lib/protocols/quic.c:961,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:966,1
    - Dst: __gcry_err
      Src: /src/ndpi/src/lib/protocols/quic.c:966,1
    - Dst: quic_hkdf_expand_label
      Src: /src/ndpi/src/lib/protocols/quic.c:970,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:972,1
    - Dst: __gcry_err
      Src: /src/ndpi/src/lib/protocols/quic.c:972,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - ndpi_struct
    - version
    - cid
    - cid_len
    - client_initial_secret
    argTypes:
    - struct ndpi_detection_module_struct*
    - uint32_t
    - uint8_t*
    - uint8_t
    - uint8_t[]
    constantsTouched: []
    func_position:
      end: 977
      start: 879
    functionDepth: 6
    functionLinenumber: 879
    functionLinenumberEnd: 977
    functionName: quic_derive_initial_secrets
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - hkdf_extract
    - NDPI_LOG_DBG
    - quic_hkdf_expand_label
    - __gcry_err
    - is_quic_ver_less_than
    linkageType: ''
    returnType: int
    signature: "int quic_derive_initial_secrets(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t       uint32_t version,\n\t\t\t\t       const uint8_t
      *cid, uint8_t cid_len,\n\t\t\t\t       uint8_t client_initial_secret[HASH_SHA2_256_LENGTH])"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/quic.c:998,1
    - Dst: quic_derive_initial_secrets
      Src: /src/ndpi/src/lib/protocols/quic.c:999,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1001,1
    - Dst: quic_ciphers_prepare
      Src: /src/ndpi/src/lib/protocols/quic.c:1007,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1010,1
    - Dst: quic_len
      Src: /src/ndpi/src/lib/protocols/quic.c:1016,1
    - Dst: quic_ciphers_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:1021,1
    - Dst: quic_len
      Src: /src/ndpi/src/lib/protocols/quic.c:1024,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1026,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1030,1
    - Dst: quic_ciphers_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:1032,1
    - Dst: quic_decrypt_header
      Src: /src/ndpi/src/lib/protocols/quic.c:1036,1
    - Dst: quic_ciphers_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:1038,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1041,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1049,1
    - Dst: quic_ciphers_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:1051,1
    - Dst: quic_decrypt_message
      Src: /src/ndpi/src/lib/protocols/quic.c:1054,1
    - Dst: quic_ciphers_reset
      Src: /src/ndpi/src/lib/protocols/quic.c:1057,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 7
    argNames:
    - ndpi_struct
    - orig_dest_conn_id
    - orig_dest_conn_id_len
    - dest_conn_id_len
    - source_conn_id_len
    - version
    - clear_payload_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - uint8_t*
    - uint8_t
    - uint8_t
    - uint8_t
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1064
      start: 984
    functionDepth: 9
    functionLinenumber: 984
    functionLinenumberEnd: 1064
    functionName: decrypt_initial_packet
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - quic_decrypt_message
    - memset
    - NDPI_LOG_DBG2
    - NDPI_LOG_DBG
    - quic_ciphers_prepare
    - quic_len
    - quic_decrypt_header
    - quic_derive_initial_secrets
    - quic_ciphers_reset
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *decrypt_initial_packet(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t       const uint8_t *orig_dest_conn_id, uint8_t orig_dest_conn_id_len,\n\t\t\t\t
      \      uint8_t dest_conn_id_len,\n\t\t\t\t       uint8_t source_conn_id_len,
      uint32_t version,\n\t\t\t\t       uint32_t *clear_payload_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - buffer_bitmap
    - buffer_bitmap_size
    - recv_pos
    - recv_len
    argTypes:
    - u_int8_t*
    - u_int32_t
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 1087
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1087
    functionName: update_reasm_buf_bitmap
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void update_reasm_buf_bitmap(u_int8_t *buffer_bitmap,\n\t\t\t\t    const
      u_int32_t buffer_bitmap_size,\n\t\t\t\t    const u_int32_t recv_pos,\n\t\t\t\t
      \   const u_int32_t recv_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - buffer_bitmap
    - buffer_len
    argTypes:
    - u_int8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 1107
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1107
    functionName: is_reasm_buf_complete
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int is_reasm_buf_complete(const u_int8_t *buffer_bitmap,\n                                 const
      u_int32_t buffer_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/quic.c:1118,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/protocols/quic.c:1120,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:1128,1
    - Dst: update_reasm_buf_bitmap
      Src: /src/ndpi/src/lib/protocols/quic.c:1130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 6
    argNames:
    - flow
    - frag
    - frag_len
    - frag_offset
    - buf
    - buf_len
    argTypes:
    - struct ndpi_flow_struct*
    - u_int8_t*
    - uint64_t
    - uint64_t
    - u_int8_t**
    - u_int64_t*
    constantsTouched: []
    func_position:
      end: 1135
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1135
    functionName: __reassemble
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - ndpi_calloc
    - memcpy
    - ndpi_malloc
    - update_reasm_buf_bitmap
    linkageType: ''
    returnType: int
    signature: "int __reassemble(struct ndpi_flow_struct *flow, const u_int8_t *frag,\n
      \                       uint64_t frag_len, uint64_t frag_offset,\n                        const
      u_int8_t **buf, u_int64_t *buf_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - u_int8_t*
    - uint64_t
    constantsTouched: []
    func_position:
      end: 1147
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1147
    functionName: is_ch_complete
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_ch_complete(const u_int8_t *buf, uint64_t buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_reasm_buf_complete
      Src: /src/ndpi/src/lib/protocols/quic.c:1151,1
    - Dst: is_ch_complete
      Src: /src/ndpi/src/lib/protocols/quic.c:1152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1153
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1153
    functionName: is_ch_reassembler_pending
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_ch_complete
    - is_reasm_buf_complete
    linkageType: ''
    returnType: int
    signature: int is_ch_reassembler_pending(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1163,1
    - Dst: is_ch_complete
      Src: /src/ndpi/src/lib/protocols/quic.c:1167,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1168,1
    - Dst: __reassemble
      Src: /src/ndpi/src/lib/protocols/quic.c:1173,1
    - Dst: is_reasm_buf_complete
      Src: /src/ndpi/src/lib/protocols/quic.c:1176,1
    - Dst: is_ch_complete
      Src: /src/ndpi/src/lib/protocols/quic.c:1177,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1178,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1181,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - ndpi_struct
    - flow
    - frag
    - frag_offset
    - frag_len
    - crypto_data_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - uint64_t
    - uint64_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 1186
      start: 1154
    functionDepth: 2
    functionLinenumber: 1154
    functionLinenumberEnd: 1186
    functionName: get_reassembled_crypto_data
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG2
    - NDPI_LOG_DBG
    - is_ch_complete
    - __reassemble
    - is_reasm_buf_complete
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *get_reassembled_crypto_data(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t\t  struct ndpi_flow_struct *flow,\n\t\t\t\t\t\t  const
      u_int8_t *frag,\n\t\t\t\t\t\t  uint64_t frag_offset, uint64_t frag_len,\n\t\t\t\t\t\t
      \ uint64_t *crypto_data_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1205,1
    - Dst: is_gquic_ver_less_than
      Src: /src/ndpi/src/lib/protocols/quic.c:1206,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1218,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1228,1
    - Dst: gquic_get_u16
      Src: /src/ndpi/src/lib/protocols/quic.c:1232,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1235,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1252,1
    - Dst: quic_len
      Src: /src/ndpi/src/lib/protocols/quic.c:1258,1
    - Dst: quic_len
      Src: /src/ndpi/src/lib/protocols/quic.c:1259,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1261,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1272,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1278,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1282,1
    - Dst: quic_len_buffer_still_required
      Src: /src/ndpi/src/lib/protocols/quic.c:1285,1
    - Dst: quic_len
      Src: /src/ndpi/src/lib/protocols/quic.c:1287,1
    - Dst: quic_len_buffer_still_required
      Src: /src/ndpi/src/lib/protocols/quic.c:1289,1
    - Dst: quic_len
      Src: /src/ndpi/src/lib/protocols/quic.c:1291,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1293,1
    - Dst: get_reassembled_crypto_data
      Src: /src/ndpi/src/lib/protocols/quic.c:1297,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1304,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1309,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1312,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1317,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 105
    argCount: 5
    argNames:
    - ndpi_struct
    - flow
    - clear_payload
    - clear_payload_len
    - crypto_data_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - uint32_t
    - uint64_t*
    constantsTouched: []
    func_position:
      end: 1322
      start: 1188
    functionDepth: 3
    functionLinenumber: 1188
    functionLinenumberEnd: 1322
    functionName: get_crypto_data
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - gquic_get_u16
    - NDPI_LOG_DBG2
    - NDPI_LOG_DBG
    - quic_len_buffer_still_required
    - is_gquic_ver_less_than
    - quic_len
    - get_reassembled_crypto_data
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *get_crypto_data(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow,\n\t\t\t       u_int8_t *clear_payload,
      uint32_t clear_payload_len,\n\t\t\t       uint64_t *crypto_data_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_gquic_ver_less_than
      Src: /src/ndpi/src/lib/protocols/quic.c:1333,1
    - Dst: is_gquic_ver_less_than
      Src: /src/ndpi/src/lib/protocols/quic.c:1337,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1343,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1354,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:1366,1
    - Dst: decrypt_initial_packet
      Src: /src/ndpi/src/lib/protocols/quic.c:1371,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - version
    - clear_payload_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - uint32_t
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1380
      start: 1324
    functionDepth: 10
    functionLinenumber: 1324
    functionLinenumberEnd: 1380
    functionName: get_clear_payload
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_gquic_ver_less_than
    - memcpy
    - NDPI_LOG_DBG
    - decrypt_initial_packet
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *get_clear_payload(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \ struct ndpi_flow_struct *flow,\n\t\t\t\t  uint32_t version, uint32_t *clear_payload_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: processClientServerHello
      Src: /src/ndpi/src/lib/protocols/quic.c:1396,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/quic.c:1411,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1412,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/quic.c:1413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - crypto_data
    - crypto_data_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1415
      start: 1382
    functionDepth: 5
    functionLinenumber: 1382
    functionLinenumberEnd: 1415
    functionName: process_tls
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - processClientServerHello
    - strncmp
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void process_tls(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t
      struct ndpi_flow_struct *flow,\n\t\t const u_int8_t *crypto_data, uint32_t crypto_data_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/quic.c:1430,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1431,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/quic.c:1434,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/quic.c:1442,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/quic.c:1450,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/quic.c:1453,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/quic.c:1455,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1457,1
    - Dst: ndpi_match_host_subprotocol
      Src: /src/ndpi/src/lib/protocols/quic.c:1460,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/quic.c:1462,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/src/lib/protocols/quic.c:1466,1
    - Dst: ndpi_is_valid_hostname
      Src: /src/ndpi/src/lib/protocols/quic.c:1469,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/quic.c:1471,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/quic.c:1474,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/quic.c:1475,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/quic.c:1477,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/quic.c:1481,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/quic.c:1489,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/quic.c:1492,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1493,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1503,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/quic.c:1508,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - crypto_data
    - crypto_data_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - uint32_t
    constantsTouched: []
    func_position:
      end: 1510
      start: 1416
    functionDepth: 5
    functionLinenumber: 1416
    functionLinenumberEnd: 1510
    functionName: process_chlo
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - printf
    - ndpi_hostname_sni_set
    - le16toh
    - NDPI_LOG_DBG2
    - memcmp
    - NDPI_LOG_DBG
    - ndpi_check_dga_name
    - is_flowrisk_info_enabled
    - ndpi_match_host_subprotocol
    - le32toh
    - ndpi_is_valid_hostname
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void process_chlo(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t
      \ struct ndpi_flow_struct *flow,\n\t\t  const u_int8_t *crypto_data, uint32_t
      crypto_data_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/quic.c:1518,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/protocols/quic.c:1526,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/quic.c:1527,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 1530
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1530
    functionName: may_be_gquic_rej
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ntohs
    - memchr
    linkageType: ''
    returnType: int
    signature: int may_be_gquic_rej(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/quic.c:1540,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/quic.c:1541,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/quic.c:1563,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/quic.c:1573,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1578
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1578
    functionName: may_be_sh
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memcpy
    - ntohs
    linkageType: ''
    returnType: int
    signature: "int may_be_sh(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1590,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/quic.c:1600,1
    - Dst: is_version_quic
      Src: /src/ndpi/src/lib/protocols/quic.c:1604,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1606,1
    - Dst: is_version_quic_v2
      Src: /src/ndpi/src/lib/protocols/quic.c:1609,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1611,1
    - Dst: is_version_quic_v2
      Src: /src/ndpi/src/lib/protocols/quic.c:1614,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1616,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1623,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1628,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1633,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - ndpi_struct
    - version
    argTypes:
    - struct ndpi_detection_module_struct*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1639
      start: 1580
    functionDepth: 2
    functionLinenumber: 1580
    functionLinenumberEnd: 1639
    functionName: may_be_0rtt
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_version_quic
    - ntohl
    - is_version_quic_v2
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: int
    signature: "int may_be_0rtt(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t
      \      uint32_t *version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/quic.c:1667,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1670,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/quic.c:1672,1
    - Dst: is_version_valid
      Src: /src/ndpi/src/lib/protocols/quic.c:1675,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1676,1
    - Dst: is_gquic_ver_less_than
      Src: /src/ndpi/src/lib/protocols/quic.c:1680,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1682,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1687,1
    - Dst: is_version_quic
      Src: /src/ndpi/src/lib/protocols/quic.c:1690,1
    - Dst: is_version_quic_v2
      Src: /src/ndpi/src/lib/protocols/quic.c:1690,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1693,1
    - Dst: is_version_quic_v2
      Src: /src/ndpi/src/lib/protocols/quic.c:1696,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1698,1
    - Dst: is_version_forcing_vn
      Src: /src/ndpi/src/lib/protocols/quic.c:1711,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1713,1
    - Dst: is_version_with_ietf_long_header
      Src: /src/ndpi/src/lib/protocols/quic.c:1718,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1723,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 56
    argCount: 2
    argNames:
    - ndpi_struct
    - version
    argTypes:
    - struct ndpi_detection_module_struct*
    - uint32_t*
    constantsTouched: []
    func_position:
      end: 1732
      start: 1641
    functionDepth: 3
    functionLinenumber: 1641
    functionLinenumberEnd: 1732
    functionName: may_be_initial_pkt
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_version_with_ietf_long_header
    - is_version_quic_v2
    - NDPI_LOG_DBG2
    - is_version_forcing_vn
    - is_version_valid
    - NDPI_LOG_DBG
    - is_gquic_ver_less_than
    - ntohl
    - is_version_quic
    linkageType: ''
    returnType: int
    signature: "int may_be_initial_pkt(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \     uint32_t *version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1751,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/quic.c:1759,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1760,1
    - Dst: is_ch_reassembler_pending
      Src: /src/ndpi/src/lib/protocols/quic.c:1765,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1771
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1771
    functionName: eval_extra_processing
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - is_ch_reassembler_pending
    - strcmp
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: int
    signature: "int eval_extra_processing(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1788,1
    - Dst: is_ch_reassembler_pending
      Src: /src/ndpi/src/lib/protocols/quic.c:1793,1
    - Dst: ndpi_search_quic
      Src: /src/ndpi/src/lib/protocols/quic.c:1794,1
    - Dst: is_ch_reassembler_pending
      Src: /src/ndpi/src/lib/protocols/quic.c:1795,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1805,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1809,1
    - Dst: is_valid_rtp_payload_type
      Src: /src/ndpi/src/lib/protocols/quic.c:1819,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1822,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/quic.c:1823,1
    - Dst: ndpi_fill_protocol_category
      Src: /src/ndpi/src/lib/protocols/quic.c:1828,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/quic.c:1831,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1835
      start: 1775
    functionDepth: 5
    functionLinenumber: 1775
    functionLinenumberEnd: 1835
    functionName: ndpi_search_quic_extra
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG2
    - is_ch_reassembler_pending
    - NDPI_LOG_DBG
    - is_valid_rtp_payload_type
    - ndpi_fill_protocol_category
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - ndpi_search_quic
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_quic_extra(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \ struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1855,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/quic.c:1859,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1861,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1868,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1874,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 1880
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1880
    functionName: is_vn
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - ntohl
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: int
    signature: int is_vn(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1892,1
    - Dst: is_vn
      Src: /src/ndpi/src/lib/protocols/quic.c:1898,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1899,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1903,1
    - Dst: ndpi_search_quic
      Src: /src/ndpi/src/lib/protocols/quic.c:1909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1912
      start: 1882
    functionDepth: 1
    functionLinenumber: 1882
    functionLinenumberEnd: 1912
    functionName: ndpi_search_quic_extra_vn
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 0
    functionsReached:
    - ndpi_search_quic
    - is_vn
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_quic_extra_vn(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t     struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1924,1
    - Dst: may_be_initial_pkt
      Src: /src/ndpi/src/lib/protocols/quic.c:1949,1
    - Dst: is_ch_reassembler_pending
      Src: /src/ndpi/src/lib/protocols/quic.c:1951,1
    - Dst: may_be_0rtt
      Src: /src/ndpi/src/lib/protocols/quic.c:1952,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:1954,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/quic.c:1958,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/quic.c:1959,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/quic.c:1965,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/quic.c:1966,1
    - Dst: may_be_sh
      Src: /src/ndpi/src/lib/protocols/quic.c:1970,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/quic.c:1972,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/quic.c:1973,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/quic.c:1978,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/quic.c:1980,1
    - Dst: may_be_gquic_rej
      Src: /src/ndpi/src/lib/protocols/quic.c:1983,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/quic.c:1985,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/quic.c:1986,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/quic.c:1991,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/quic.c:1999,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/quic.c:2000,1
    - Dst: is_version_supported
      Src: /src/ndpi/src/lib/protocols/quic.c:2007,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:2008,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/quic.c:2009,1
    - Dst: is_version_forcing_vn
      Src: /src/ndpi/src/lib/protocols/quic.c:2020,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/quic.c:2021,1
    - Dst: get_clear_payload
      Src: /src/ndpi/src/lib/protocols/quic.c:2030,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/quic.c:2032,1
    - Dst: get_crypto_data
      Src: /src/ndpi/src/lib/protocols/quic.c:2039,1
    - Dst: is_version_with_tls
      Src: /src/ndpi/src/lib/protocols/quic.c:2047,1
    - Dst: process_chlo
      Src: /src/ndpi/src/lib/protocols/quic.c:2048,1
    - Dst: process_tls
      Src: /src/ndpi/src/lib/protocols/quic.c:2050,1
    - Dst: is_version_with_encrypted_header
      Src: /src/ndpi/src/lib/protocols/quic.c:2053,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/quic.c:2054,1
    - Dst: eval_extra_processing
      Src: /src/ndpi/src/lib/protocols/quic.c:2060,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/quic.c:2064,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 83
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 2066
      start: 1914
    functionDepth: 11
    functionLinenumber: 1914
    functionLinenumberEnd: 2066
    functionName: ndpi_search_quic
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 2
    functionsReached:
    - ndpi_free
    - is_ch_reassembler_pending
    - is_version_supported
    - process_chlo
    - may_be_0rtt
    - NDPI_LOG_DBG2
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    - process_tls
    - may_be_sh
    - get_crypto_data
    - is_version_forcing_vn
    - NDPI_EXCLUDE_DISSECTOR
    - is_version_with_encrypted_header
    - may_be_initial_pkt
    - NDPI_LOG_INFO
    - may_be_gquic_rej
    - eval_extra_processing
    - get_clear_payload
    - is_version_with_tls
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_quic(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/quic.c:2072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 2076
      start: 2070
    functionDepth: 3
    functionLinenumber: 2070
    functionLinenumberEnd: 2076
    functionName: init_quic_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/quic.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_quic_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/whoisdas.c:33,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/whoisdas.c:35,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/whoisdas.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/whoisdas.c:42,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/whoisdas.c:45,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/whoisdas.c:46,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/whoisdas.c:52,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 53
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 53
    functionName: ndpi_search_whois_das
    functionSourceFile: /src/ndpi/src/lib/protocols/whoisdas.c
    functionUses: 0
    functionsReached:
    - ndpi_hostname_sni_set
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_whois_das(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/whoisdas.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: init_whois_das_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/whoisdas.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_whois_das_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/citrix.c:42,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/citrix.c:43,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/citrix.c:44,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/citrix.c:50,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/citrix.c:51,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/citrix.c:52,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/citrix.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/citrix.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 59
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 59
    functionName: ndpi_check_citrix
    functionSourceFile: /src/ndpi/src/lib/protocols/citrix.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - ndpi_strnstr
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_check_citrix(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/citrix.c:63,1
    - Dst: ndpi_check_citrix
      Src: /src/ndpi/src/lib/protocols/citrix.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: ndpi_search_citrix
    functionSourceFile: /src/ndpi/src/lib/protocols/citrix.c
    functionUses: 0
    functionsReached:
    - ndpi_check_citrix
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_citrix(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/citrix.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: init_citrix_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/citrix.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_citrix_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/bitcoin.c:37,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/bitcoin.c:40,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/bitcoin.c:41,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/bitcoin.c:42,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/bitcoin.c:49,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bitcoin.c:50,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bitcoin.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: ndpi_search_bitcoin
    functionSourceFile: /src/ndpi/src/lib/protocols/bitcoin.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_bitcoin(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/bitcoin.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: init_bitcoin_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/bitcoin.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_bitcoin_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/hsrp.c:40,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/hsrp.c:43,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hsrp.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hsrp.c:48,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hsrp.c:49,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hsrp.c:50,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/hsrp.c:51,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hsrp.c:52,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/hsrp.c:56,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hsrp.c:61,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/hsrp.c:69,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/hsrp.c:73,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hsrp.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/hsrp.c:80,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 26
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 81
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 81
    functionName: ndpi_search_hsrp
    functionSourceFile: /src/ndpi/src/lib/protocols/hsrp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_hsrp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/hsrp.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: init_hsrp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/hsrp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_hsrp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/avast.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: ndpi_int_avast_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/avast.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_avast_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                          struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/avast.c:42,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/avast.c:46,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/avast.c:46,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/avast.c:47,1
    - Dst: ndpi_int_avast_add_connection
      Src: /src/ndpi/src/lib/protocols/avast.c:49,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/avast.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: ndpi_search_avast
    functionSourceFile: /src/ndpi/src/lib/protocols/avast.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_STATICSTRING_LEN
    - ndpi_int_avast_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_avast(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/avast.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: init_avast_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/avast.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_avast_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/c1222.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/c1222.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: ndpi_int_c1222_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/c1222.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_c1222_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                          struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/c1222.c:48,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/c1222.c:53,1
    - Dst: ndpi_int_c1222_add_connection
      Src: /src/ndpi/src/lib/protocols/c1222.c:58,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/c1222.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 63
    functionName: ndpi_search_c1222
    functionSourceFile: /src/ndpi/src/lib/protocols/c1222.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG
    - ndpi_int_c1222_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_c1222(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/c1222.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: init_c1222_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/c1222.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_c1222_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/iax.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: ndpi_int_iax_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/iax.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_iax_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/iax.c:48,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/iax.c:48,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/iax.c:65,1
    - Dst: ndpi_int_iax_add_connection
      Src: /src/ndpi/src/lib/protocols/iax.c:66,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/iax.c:77,1
    - Dst: ndpi_int_iax_add_connection
      Src: /src/ndpi/src/lib/protocols/iax.c:78,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/iax.c:85,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 87
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 87
    functionName: ndpi_search_setup_iax
    functionSourceFile: /src/ndpi/src/lib/protocols/iax.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_int_iax_add_connection
    - htons
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: void ndpi_search_setup_iax(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_setup_iax
      Src: /src/ndpi/src/lib/protocols/iax.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: ndpi_search_iax
    functionSourceFile: /src/ndpi/src/lib/protocols/iax.c
    functionUses: 0
    functionsReached:
    - ndpi_search_setup_iax
    linkageType: ''
    returnType: void
    signature: void ndpi_search_iax(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/iax.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: init_iax_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/iax.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_iax_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/zabbix.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: ndpi_int_zabbix_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/zabbix.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_zabbix_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/zabbix.c:42,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zabbix.c:45,1
    - Dst: ndpi_int_zabbix_add_connection
      Src: /src/ndpi/src/lib/protocols/zabbix.c:46,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/zabbix.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: ndpi_search_zabbix
    functionSourceFile: /src/ndpi/src/lib/protocols/zabbix.c
    functionUses: 0
    functionsReached:
    - memcmp
    - NDPI_LOG_DBG
    - ndpi_int_zabbix_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_zabbix(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/zabbix.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: init_zabbix_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/zabbix.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_zabbix_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ndpi_int_gaijin_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/gaijin_entertainment.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_gaijin_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                           struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:49,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:49,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:50,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:50,1
    - Dst: ndpi_int_gaijin_add_connection
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:52,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:57,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:57,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:58,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:58,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:59,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:59,1
    - Dst: ndpi_int_gaijin_add_connection
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:61,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 67
    functionName: ndpi_search_gaijin
    functionSourceFile: /src/ndpi/src/lib/protocols/gaijin_entertainment.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - ndpi_int_gaijin_add_connection
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_gaijin(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/gaijin_entertainment.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: init_gaijin_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/gaijin_entertainment.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_gaijin_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/natpmp.c:46,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/natpmp.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: ndpi_int_natpmp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/natpmp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_natpmp_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                           struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: natpmp_disable_extra_dissection
    functionSourceFile: /src/ndpi/src/lib/protocols/natpmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void natpmp_disable_extra_dissection(struct ndpi_flow_struct * const
      flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: natpmp_is_common_header
    functionSourceFile: /src/ndpi/src/lib/protocols/natpmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int natpmp_is_common_header(struct ndpi_packet_struct const * const
      packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: natpmp_is_common_header
      Src: /src/ndpi/src/lib/protocols/natpmp.c:71,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/natpmp.c:87,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/natpmp.c:102,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/natpmp.c:102,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - packet
    - natpmp_type
    argTypes:
    - struct ndpi_packet_struct*
    - enum natpmp_type*
    constantsTouched: []
    func_position:
      end: 115
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 115
    functionName: natpmp_is_valid
    functionSourceFile: /src/ndpi/src/lib/protocols/natpmp.c
    functionUses: 0
    functionsReached:
    - get_u_int16_t
    - natpmp_is_common_header
    - ntohs
    linkageType: ''
    returnType: int
    signature: int natpmp_is_valid(struct ndpi_packet_struct const * const packet,
      enum natpmp_type * const natpmp_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: natpmp_is_valid
      Src: /src/ndpi/src/lib/protocols/natpmp.c:123,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/natpmp.c:125,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/natpmp.c:135,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/natpmp.c:135,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/natpmp.c:136,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/natpmp.c:136,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/natpmp.c:139,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/natpmp.c:143,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/natpmp.c:143,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/natpmp.c:144,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/natpmp.c:147,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/natpmp.c:153,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/natpmp.c:153,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/natpmp.c:154,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/natpmp.c:154,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/natpmp.c:157,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 164
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 164
    functionName: ndpi_search_natpmp_extra
    functionSourceFile: /src/ndpi/src/lib/protocols/natpmp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ntohs
    - natpmp_is_valid
    - get_u_int16_t
    - get_u_int32_t
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_natpmp_extra(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/natpmp.c:172,1
    - Dst: natpmp_is_valid
      Src: /src/ndpi/src/lib/protocols/natpmp.c:174,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/natpmp.c:176,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/natpmp.c:181,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/natpmp.c:181,1
    - Dst: ndpi_int_natpmp_add_connection
      Src: /src/ndpi/src/lib/protocols/natpmp.c:183,1
    - Dst: ndpi_search_natpmp_extra
      Src: /src/ndpi/src/lib/protocols/natpmp.c:184,1
    - Dst: natpmp_disable_extra_dissection
      Src: /src/ndpi/src/lib/protocols/natpmp.c:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 6
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: ndpi_search_natpmp
    functionSourceFile: /src/ndpi/src/lib/protocols/natpmp.c
    functionUses: 0
    functionsReached:
    - ndpi_search_natpmp_extra
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - natpmp_is_valid
    - natpmp_disable_extra_dissection
    - NDPI_LOG_DBG
    - ndpi_int_natpmp_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_natpmp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/natpmp.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: init_natpmp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/natpmp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_natpmp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ndpi_int_lolwildrift_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/lol_wild_rift.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_lolwildrift_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                                struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:50,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:50,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:51,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:51,1
    - Dst: ndpi_int_lolwildrift_add_connection
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:53,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:58,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:58,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:66,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:66,1
    - Dst: ndpi_int_lolwildrift_add_connection
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:68,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 73
    functionName: ndpi_search_lolwildrift
    functionSourceFile: /src/ndpi/src/lib/protocols/lol_wild_rift.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - ndpi_int_lolwildrift_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_lolwildrift(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/lol_wild_rift.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: init_lolwildrift_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/lol_wild_rift.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_lolwildrift_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/amazon_video.c:35,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/amazon_video.c:43,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/amazon_video.c:44,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/amazon_video.c:51,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/amazon_video.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/amazon_video.c:57,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: ndpi_check_amazon_video
    functionSourceFile: /src/ndpi/src/lib/protocols/amazon_video.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_amazon_video(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/amazon_video.c:62,1
    - Dst: ndpi_check_amazon_video
      Src: /src/ndpi/src/lib/protocols/amazon_video.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 6
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: ndpi_search_amazon_video
    functionSourceFile: /src/ndpi/src/lib/protocols/amazon_video.c
    functionUses: 0
    functionsReached:
    - ndpi_check_amazon_video
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_amazon_video(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/amazon_video.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: init_amazon_video_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/amazon_video.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_amazon_video_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ciscovpn.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: ndpi_int_ciscovpn_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ciscovpn.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_ciscovpn_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ciscovpn.c:44,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ciscovpn.c:46,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ciscovpn.c:46,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ciscovpn.c:56,1
    - Dst: ndpi_int_ciscovpn_add_connection
      Src: /src/ndpi/src/lib/protocols/ciscovpn.c:57,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ciscovpn.c:62,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ciscovpn.c:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 65
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 65
    functionName: ndpi_search_ciscovpn
    functionSourceFile: /src/ndpi/src/lib/protocols/ciscovpn.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_ciscovpn_add_connection
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ciscovpn(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ciscovpn.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: init_ciscovpn_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ciscovpn.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ciscovpn_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/ndpi/src/lib/protocols/ssh.c:92,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:107,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/ssh.c:115,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - str_to_check
    - is_client_signature
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 118
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 118
    functionName: ssh_analyze_signature_version
    functionSourceFile: /src/ndpi/src/lib/protocols/ssh.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - printf
    - sscanf
    linkageType: ''
    returnType: void
    signature: "void ssh_analyze_signature_version(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                          struct ndpi_flow_struct
      *flow,\n\t\t\t\t\t  char *str_to_check,\n\t\t\t\t\t  u_int8_t is_client_signature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/ssh.c:145,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:147,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:152,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/protocols/ssh.c:155,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/ssh.c:161,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:164,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/protocols/ssh.c:172,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/ssh.c:178,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/ssh.c:179,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/ssh.c:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - ndpi_struct
    - flow
    - ciphers
    - cipher_len
    - is_client_signature
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    - u_int
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 185
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 185
    functionName: ssh_analyse_cipher
    functionSourceFile: /src/ndpi/src/lib/protocols/ssh.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - printf
    - ndpi_free
    - ndpi_malloc
    - strncpy
    - strcmp
    - snprintf
    - strtok_r
    linkageType: ''
    returnType: void
    signature: "void ssh_analyse_cipher(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow,\n\t\t\t       char
      *ciphers, u_int cipher_len,\n\t\t\t       u_int8_t is_client_signature)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_ssh_tcp
      Src: /src/ndpi/src/lib/protocols/ssh.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: search_ssh_again
    functionSourceFile: /src/ndpi/src/lib/protocols/ssh.c
    functionUses: 0
    functionsReached:
    - ndpi_search_ssh_tcp
    linkageType: ''
    returnType: int
    signature: int search_ssh_again(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ssh.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: ndpi_int_ssh_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ssh.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ssh_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t*ndpi_struct,
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ssh.c:228,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:236,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ssh.c:244,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ssh.c:254,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:261,1
    - Dst: ssh_analyse_cipher
      Src: /src/ndpi/src/lib/protocols/ssh.c:262,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ssh.c:275,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:282,1
    - Dst: ssh_analyse_cipher
      Src: /src/ndpi/src/lib/protocols/ssh.c:283,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ssh.c:295,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:302,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ssh.c:314,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:321,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ssh.c:334,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:341,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ssh.c:352,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:359,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:371,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 126
    argCount: 5
    argNames:
    - ndpi_struct
    - flow
    - packet
    - buf
    - client_hash
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct ndpi_packet_struct*
    - char*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 382
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 382
    functionName: concat_hash_string
    functionSourceFile: /src/ndpi/src/lib/protocols/ssh.c
    functionUses: 0
    functionsReached:
    - ssh_analyse_cipher
    - printf
    - ntohl
    - strncpy
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t concat_hash_string(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow,\n\t\t\t\t
      \   struct ndpi_packet_struct *packet,\n\t\t\t\t    char *buf, u_int8_t client_hash)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 396
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 396
    functionName: ndpi_ssh_zap_cr
    functionSourceFile: /src/ndpi/src/lib/protocols/ssh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_ssh_zap_cr(char *str, int len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:404,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/ssh.c:408,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/ssh.c:409,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:412,1
    - Dst: ndpi_ssh_zap_cr
      Src: /src/ndpi/src/lib/protocols/ssh.c:414,1
    - Dst: ssh_analyze_signature_version
      Src: /src/ndpi/src/lib/protocols/ssh.c:416,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:419,1
    - Dst: ndpi_int_ssh_add_connection
      Src: /src/ndpi/src/lib/protocols/ssh.c:422,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/ssh.c:426,1
    - Dst: ndpi_ssh_zap_cr
      Src: /src/ndpi/src/lib/protocols/ssh.c:428,1
    - Dst: ssh_analyze_signature_version
      Src: /src/ndpi/src/lib/protocols/ssh.c:430,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:433,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/ssh.c:436,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:440,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:456,1
    - Dst: concat_hash_string
      Src: /src/ndpi/src/lib/protocols/ssh.c:463,1
    - Dst: ndpi_MD5Init
      Src: /src/ndpi/src/lib/protocols/ssh.c:465,1
    - Dst: ndpi_MD5Update
      Src: /src/ndpi/src/lib/protocols/ssh.c:466,1
    - Dst: ndpi_MD5Final
      Src: /src/ndpi/src/lib/protocols/ssh.c:467,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:471,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:472,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:473,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/ssh.c:477,1
    - Dst: concat_hash_string
      Src: /src/ndpi/src/lib/protocols/ssh.c:485,1
    - Dst: ndpi_MD5Init
      Src: /src/ndpi/src/lib/protocols/ssh.c:487,1
    - Dst: ndpi_MD5Update
      Src: /src/ndpi/src/lib/protocols/ssh.c:488,1
    - Dst: ndpi_MD5Final
      Src: /src/ndpi/src/lib/protocols/ssh.c:489,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:493,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:494,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:495,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/ssh.c:500,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/ssh.c:506,1
    - Dst: ndpi_int_ssh_add_connection
      Src: /src/ndpi/src/lib/protocols/ssh.c:509,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:514,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ssh.c:523,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ssh.c:526,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ssh.c:527,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 528
      start: 400
    functionDepth: 6
    functionLinenumber: 400
    functionLinenumberEnd: 528
    functionName: ndpi_search_ssh_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/ssh.c
    functionUses: 1
    functionsReached:
    - printf
    - NDPI_LOG_DBG2
    - ndpi_free
    - memcmp
    - ssh_analyze_signature_version
    - ndpi_MD5Init
    - ndpi_ssh_zap_cr
    - strncpy
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    - concat_hash_string
    - ndpi_MD5Update
    - ndpi_MD5Final
    - ndpi_int_ssh_add_connection
    - snprintf
    - current_pkt_from_client_to_server
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ssh_tcp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ssh.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: init_ssh_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ssh.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ssh_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_tivoconnect_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/tivoconnect.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_tivoconnect_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                                struct
      ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:48,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:51,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:58,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:66,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:67,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:69,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:70,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:70,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:74,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:75,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:80,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:81,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:85,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:89,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:90,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:94,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:98,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:99,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:103,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:111,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 114
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 114
    functionName: dissect_tivoconnect_data
    functionSourceFile: /src/ndpi/src/lib/protocols/tivoconnect.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_STATICSTRING_LEN
    - strncpy
    - strncasecmp
    - ndpi_strnstr
    linkageType: ''
    returnType: void
    signature: "void dissect_tivoconnect_data(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                     struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:121,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:123,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:124,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:125,1
    - Dst: ndpi_int_tivoconnect_add_connection
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:127,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:129,1
    - Dst: dissect_tivoconnect_data
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 134
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 134
    functionName: ndpi_search_tivoconnect
    functionSourceFile: /src/ndpi/src/lib/protocols/tivoconnect.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - dissect_tivoconnect_data
    - NDPI_STATICSTRING_LEN
    - strncasecmp
    - NDPI_LOG_INFO
    - ndpi_int_tivoconnect_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_tivoconnect(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/tivoconnect.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: init_tivoconnect_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/tivoconnect.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_tivoconnect_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/http2.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/http2.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: ndpi_int_http2_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/http2.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_http2_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                          struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/http2.c:43,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/http2.c:45,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/http2.c:46,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/http2.c:50,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/http2.c:50,1
    - Dst: ndpi_int_http2_add_connection
      Src: /src/ndpi/src/lib/protocols/http2.c:51,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/http2.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: ndpi_search_http2
    functionSourceFile: /src/ndpi/src/lib/protocols/http2.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_int_http2_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_http2(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/http2.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: init_http2_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/http2.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_http2_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/fins.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: ndpi_int_fins_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/fins.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_fins_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                         struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/fins.c:58,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/fins.c:67,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/fins.c:68,1
    - Dst: ndpi_int_fins_add_connection
      Src: /src/ndpi/src/lib/protocols/fins.c:69,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/fins.c:101,1
    - Dst: ndpi_int_fins_add_connection
      Src: /src/ndpi/src/lib/protocols/fins.c:102,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/fins.c:109,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 29
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 110
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 110
    functionName: ndpi_search_fins
    functionSourceFile: /src/ndpi/src/lib/protocols/fins.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_int_fins_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_fins(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/fins.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: init_fins_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/fins.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_fins_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tailscale.c:38,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tailscale.c:41,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tailscale.c:41,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/tailscale.c:42,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tailscale.c:43,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tailscale.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tailscale.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: ndpi_search_tailscale
    functionSourceFile: /src/ndpi/src/lib/protocols/tailscale.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_tailscale(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \ struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/tailscale.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: init_tailscale_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/tailscale.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_tailscale_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mgcp.c:34,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mgcp.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: ndpi_int_mgcp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/mgcp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_mgcp_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mgcp.c:48,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:63,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:63,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:64,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:64,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:65,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:65,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:66,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:66,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:67,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/mgcp.c:70,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/mgcp.c:77,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/mgcp.c:84,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/mgcp.c:84,1
    - Dst: ndpi_int_mgcp_add_connection
      Src: /src/ndpi/src/lib/protocols/mgcp.c:86,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/mgcp.c:88,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/mgcp.c:91,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/mgcp.c:94,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mgcp.c:100,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 34
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 101
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 101
    functionName: ndpi_search_mgcp
    functionSourceFile: /src/ndpi/src/lib/protocols/mgcp.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_hostname_sni_set
    - ndpi_min
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - ndpi_strnstr
    - ndpi_int_mgcp_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_mgcp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mgcp.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: init_mgcp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mgcp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mgcp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: ndpi_int_ftp_control_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_control.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ftp_control_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t\tstruct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:50,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:53,1
    - Dst: ndpi_user_pwd_payload_copy
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:56,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:60,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:62,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:66,1
    - Dst: ndpi_user_pwd_payload_copy
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:67,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:73,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:74,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:80,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:84,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:88,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:92,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:96,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:100,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:104,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:108,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:112,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:116,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:120,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:124,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:128,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:132,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:136,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:140,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:144,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:148,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:152,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:156,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:160,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:164,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:168,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:172,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:176,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:180,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:184,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:188,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:192,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:196,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:200,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:204,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:208,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:212,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:216,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:220,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:224,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:228,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:232,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:236,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:240,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:244,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:248,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:252,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:256,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:260,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:264,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:268,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:272,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:276,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:280,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:284,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:288,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:292,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:296,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:300,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:304,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:308,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:312,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:316,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:320,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:324,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:328,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:332,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:336,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:340,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:344,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:348,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:352,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:356,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:360,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:364,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:368,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:372,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:376,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:380,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:384,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:388,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:392,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:396,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:400,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:404,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:408,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:412,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:416,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:420,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:424,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:428,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:432,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:436,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:440,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:444,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:448,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:452,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:456,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:460,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:464,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:468,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:472,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:476,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:480,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:484,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:488,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:492,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:496,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:500,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:504,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:508,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:512,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:516,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:520,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:524,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:528,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:532,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:536,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:540,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:544,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:548,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 371
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - payload
    - payload_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 553
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 553
    functionName: ndpi_ftp_control_check_request
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_control.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_user_pwd_payload_copy
    - printf
    - ndpi_match_strprefix
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int ndpi_ftp_control_check_request(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                          struct ndpi_flow_struct
      *flow,\n\t\t\t\t\t  const u_int8_t *payload,\n\t\t\t\t\t  size_t payload_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - flow
    - payload
    argTypes:
    - struct ndpi_flow_struct*
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 580
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 580
    functionName: ndpi_ftp_control_check_response
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_control.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: "int ndpi_ftp_control_check_response(struct ndpi_flow_struct *flow,\n\t\t\t\t\t
      \  const u_int8_t *payload)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:588,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:592,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:598,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:604,1
    - Dst: ndpi_ftp_control_check_request
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:606,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:608,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:618,1
    - Dst: ndpi_ftp_control_check_response
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:629,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:630,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:633,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:645,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:647,1
    - Dst: switch_extra_dissection_to_tls
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:650,1
    - Dst: ndpi_int_ftp_control_add_connection
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:652,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:655,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 660
      start: 584
    functionDepth: 6
    functionLinenumber: 584
    functionLinenumberEnd: 660
    functionName: ndpi_check_ftp_control
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_control.c
    functionUses: 0
    functionsReached:
    - printf
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_ftp_control_check_response
    - ndpi_int_ftp_control_add_connection
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - switch_extra_dissection_to_tls
    - ndpi_ftp_control_check_request
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_ftp_control(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:666,1
    - Dst: ndpi_check_ftp_control
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 669
      start: 664
    functionDepth: 7
    functionLinenumber: 664
    functionLinenumberEnd: 669
    functionName: ndpi_search_ftp_control
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_control.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG
    - ndpi_check_ftp_control
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ftp_control(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ftp_control.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 678
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 678
    functionName: init_ftp_control_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_control.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ftp_control_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 6
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: is_diameter
    functionSourceFile: /src/ndpi/src/lib/protocols/diameter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_diameter(struct ndpi_packet_struct *packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/diameter.c:98,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/diameter.c:99,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/diameter.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: ndpi_search_diameter
    functionSourceFile: /src/ndpi/src/lib/protocols/diameter.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_diameter(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/diameter.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: init_diameter_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/diameter.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_diameter_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/melsec.c:38,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/melsec.c:44,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/melsec.c:44,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/melsec.c:45,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/melsec.c:45,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/melsec.c:47,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/melsec.c:48,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/melsec.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: ndpi_search_melsec
    functionSourceFile: /src/ndpi/src/lib/protocols/melsec.c
    functionUses: 0
    functionsReached:
    - le16toh
    - get_u_int16_t
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_melsec(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/melsec.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: init_melsec_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/melsec.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_melsec_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mumble.c:37,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/mumble.c:39,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/mumble.c:42,1
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/protocols/mumble.c:44,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/mumble.c:44,1
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/protocols/mumble.c:51,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/mumble.c:51,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mumble.c:52,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mumble.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mumble.c:61,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 62
    functionName: ndpi_search_mumble
    functionSourceFile: /src/ndpi/src/lib/protocols/mumble.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_ntohll
    - current_pkt_from_client_to_server
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - get_u_int64_t
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_mumble(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mumble.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: init_mumble_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mumble.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mumble_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_ultrasurf_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ultrasurf.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ultrasurf_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                              struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:48,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:52,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:52,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:53,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:53,1
    - Dst: ndpi_int_ultrasurf_add_connection
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 59
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 59
    functionName: ndpi_search_ultrasurf
    functionSourceFile: /src/ndpi/src/lib/protocols/ultrasurf.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_ultrasurf_add_connection
    - NDPI_LOG_DBG
    - htonl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ultrasurf(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ultrasurf.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: init_ultrasurf_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ultrasurf.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ultrasurf_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: ndpi_int_ftp_data_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_data.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_ftp_data_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:42,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: ndpi_match_ftp_data_port
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_data.c
    functionUses: 0
    functionsReached:
    - htons
    linkageType: ''
    returnType: int
    signature: int ndpi_match_ftp_data_port(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: ndpi_match_ftp_data_directory
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_data.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_match_ftp_data_directory(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:82,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:86,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:98,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:110,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:118,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:126,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:140,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:144,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:150,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:158,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:166,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:182,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:186,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:187,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:190,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:194,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:198,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:211,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:213,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:215,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 78
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 219
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 219
    functionName: ndpi_match_file_header
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_data.c
    functionUses: 0
    functionsReached:
    - ndpi_match_strprefix
    - ndpi_strnstr
    linkageType: ''
    returnType: int
    signature: int ndpi_match_file_header(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_seen_flow_beginning
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:228,1
    - Dst: ndpi_match_file_header
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:230,1
    - Dst: ndpi_match_ftp_data_directory
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:231,1
    - Dst: ndpi_match_ftp_data_port
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:232,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:235,1
    - Dst: ndpi_int_ftp_data_add_connection
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:236,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 6
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: ndpi_check_ftp_data
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_data.c
    functionUses: 0
    functionsReached:
    - ndpi_match_ftp_data_directory
    - ndpi_seen_flow_beginning
    - ndpi_match_ftp_data_port
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_match_file_header
    - NDPI_LOG_INFO
    - ndpi_int_ftp_data_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_check_ftp_data(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:246,1
    - Dst: ndpi_check_ftp_data
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 7
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: ndpi_search_ftp_data
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_data.c
    functionUses: 0
    functionsReached:
    - ndpi_check_ftp_data
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ftp_data(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ftp_data.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: init_ftp_data_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ftp_data.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ftp_data_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: ndpi_utp_hdr
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_utp_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_bittorrent_hash
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: search_bittorrent_again
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached:
    - ndpi_search_bittorrent_hash
    linkageType: ''
    returnType: int
    signature: "int search_bittorrent_again(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - payload
    - payload_len
    argTypes:
    - u_int8_t*
    - u_int
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: get_utpv1_length
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_utpv1_length(const u_int8_t *payload, u_int payload_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_utpv1_length
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:100,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 2
    argNames:
    - payload
    - payload_len
    argTypes:
    - u_int8_t*
    - u_int
    constantsTouched: []
    func_position:
      end: 120
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 120
    functionName: is_utpv1_pkt
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached:
    - get_utpv1_length
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t is_utpv1_pkt(const u_int8_t *payload, u_int payload_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - bt_offset
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - int
    constantsTouched: []
    func_position:
      end: 144
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 144
    functionName: ndpi_search_bittorrent_hash
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_bittorrent_hash(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\tstruct ndpi_flow_struct *flow, int bt_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:154,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:154,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:154,1
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:156,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:159,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - flow
    - client
    - offset
    argTypes:
    - struct ndpi_flow_struct*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: make_bittorrent_host_key
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 1
    functionsReached:
    - ndpi_quick_hash64
    - ntohs
    - htons
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t make_bittorrent_host_key(struct ndpi_flow_struct *flow, int
      client, int offset)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:174,1
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: make_bittorrent_peers_key
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 1
    functionsReached:
    - ndpi_quick_hash64
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t make_bittorrent_peers_key(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_bittorrent_hash
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:189,1
    - Dst: ndpi_set_detected_protocol_keeping_master
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:191,1
    - Dst: make_bittorrent_peers_key
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:204,1
    - Dst: make_bittorrent_host_key
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:205,1
    - Dst: make_bittorrent_host_key
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:205,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:207,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:207,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:208,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:208,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:211,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:214,1
    - Dst: make_bittorrent_host_key
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:218,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:220,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:220,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:224,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:226,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - ndpi_struct
    - flow
    - bt_offset
    - check_hash
    - confidence
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - int
    - int
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 230
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 230
    functionName: ndpi_add_connection_as_bittorrent
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached:
    - ndpi_lru_add_to_cache
    - printf
    - ntohs
    - make_bittorrent_peers_key
    - make_bittorrent_host_key
    - ndpi_set_detected_protocol_keeping_master
    - ndpi_search_bittorrent_hash
    - ndpi_get_current_time
    linkageType: ''
    returnType: void
    signature: "void ndpi_add_connection_as_bittorrent(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t      struct ndpi_flow_struct *flow,\n\t\t\t\t\t      int
      bt_offset, int check_hash,\n\t\t\t\t\t      ndpi_confidence_t confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:245,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:246,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:247,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:255,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:256,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:257,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:263,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:264,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:265,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:272,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:272,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:273,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:274,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:279,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:280,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:285,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:288,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:289,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:290,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:291,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:292,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:297,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:299,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:300,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:301,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:309,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:315,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:318,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:321,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:322,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:326,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:329,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:331,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:333,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:334,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:342,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:348,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:350,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:353,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:355,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:357,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:358,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:365,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:371,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:373,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:375,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:377,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:378,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:387,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:394,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:443,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:444,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:468,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:469,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:470,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:471,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:477,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:479,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:482,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:483,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:484,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 134
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 490
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 490
    functionName: ndpi_int_search_bittorrent_tcp_zero
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG2
    - memcmp
    - ndpi_add_connection_as_bittorrent
    - NDPI_LOG_INFO
    - ndpi_parse_packet_line_info
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_int_search_bittorrent_tcp_zero(struct ndpi_detection_module_struct\n\t\t\t\t\t\t
      \   *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_int_search_bittorrent_tcp_zero
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 504
      start: 495
    functionDepth: 4
    functionLinenumber: 495
    functionLinenumberEnd: 504
    functionName: ndpi_int_search_bittorrent_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached:
    - ndpi_int_search_bittorrent_tcp_zero
    linkageType: ''
    returnType: void
    signature: void ndpi_int_search_bittorrent_tcp(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - what
    argTypes:
    - u_int16_t
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 510
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 510
    functionName: is_port
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t is_port(u_int16_t a, u_int16_t b, u_int16_t what)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: search_into_bittorrent_cache
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:518,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:519,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 522
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 522
    functionName: ndpi_skip_bittorrent
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached:
    - ndpi_add_connection_as_bittorrent
    - search_into_bittorrent_cache
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_skip_bittorrent(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:531,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:539,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:539,1
    - Dst: is_port
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:541,1
    - Dst: is_port
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:542,1
    - Dst: is_port
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:542,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:544,1
    - Dst: ndpi_int_search_bittorrent_tcp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:552,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:558,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:559,1
    - Dst: ndpi_skip_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:560,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:571,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:571,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:572,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:572,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:574,1
    - Dst: is_utpv1_pkt
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:582,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:583,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:596,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:600,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:606,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:609,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:622,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:623,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:624,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:625,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:626,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:627,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:628,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:633,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:637,1
    - Dst: ndpi_add_connection_as_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:638,1
    - Dst: ndpi_skip_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:646,1
    - Dst: ndpi_skip_bittorrent
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:651,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 78
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 652
      start: 526
    functionDepth: 5
    functionLinenumber: 526
    functionLinenumberEnd: 652
    functionName: ndpi_search_bittorrent
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 0
    functionsReached:
    - strncmp
    - is_port
    - ndpi_skip_bittorrent
    - ntohs
    - memcpy
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_add_connection_as_bittorrent
    - NDPI_LOG_DBG
    - ndpi_int_search_bittorrent_tcp
    - is_utpv1_pkt
    - ndpi_strnstr
    - NDPI_LOG_INFO
    - ntohl
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_bittorrent(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/bittorrent.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 662
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 662
    functionName: init_bittorrent_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/bittorrent.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_bittorrent_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/teso.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/teso.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: ndpi_int_teso_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/teso.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_teso_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                         struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/teso.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/teso.c:50,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/teso.c:50,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/teso.c:52,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/src/lib/protocols/teso.c:65,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/teso.c:66,1
    - Dst: ndpi_int_teso_add_connection
      Src: /src/ndpi/src/lib/protocols/teso.c:68,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/src/lib/protocols/teso.c:71,1
    - Dst: ndpi_int_teso_add_connection
      Src: /src/ndpi/src/lib/protocols/teso.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/teso.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 79
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 79
    functionName: ndpi_search_teso
    functionSourceFile: /src/ndpi/src/lib/protocols/teso.c
    functionUses: 0
    functionsReached:
    - ndpi_int_teso_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - ndpi_memmem
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_teso(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/teso.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: init_teso_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/teso.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_teso_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: slp_hdr_v1
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON slp_hdr_v1
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: slp_hdr_v2
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON slp_hdr_v2
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: slp_url_entry
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON slp_url_entry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/slp.c:90,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/slp.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: ndpi_int_slp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_slp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                        struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/slp.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - packet_length
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - unsigned int
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: slp_check_packet_length
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: int
    signature: "int slp_check_packet_length(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                  struct ndpi_flow_struct *flow,\n                                   unsigned
      int packet_length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/slp.c:116,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/slp.c:123,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/slp.c:129,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/slp.c:134,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - fid
    - slp_version
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - enum function_id
    - uint8_t
    constantsTouched: []
    func_position:
      end: 139
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 139
    functionName: slp_check_fid
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: int
    signature: "int slp_check_fid(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                        struct ndpi_flow_struct *flow,\n                         enum
      function_id fid, uint8_t slp_version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/slp.c:153,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/slp.c:156,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/slp.c:156,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/slp.c:171,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/slp.c:171,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/slp.c:171,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/slp.c:172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - url_entries_offset
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - uint16_t
    constantsTouched: []
    func_position:
      end: 191
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 191
    functionName: slp_dissect_url_entries
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached:
    - strncpy
    - NDPI_ARRAY_LENGTH
    - ntohs
    - ndpi_min
    linkageType: ''
    returnType: int
    signature: "int slp_dissect_url_entries(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                  struct ndpi_flow_struct *flow,\n                                   uint16_t
      url_entries_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/slp.c:199,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/slp.c:202,1
    - Dst: slp_check_packet_length
      Src: /src/ndpi/src/lib/protocols/slp.c:207,1
    - Dst: slp_check_fid
      Src: /src/ndpi/src/lib/protocols/slp.c:210,1
    - Dst: ndpi_int_slp_add_connection
      Src: /src/ndpi/src/lib/protocols/slp.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 214
      start: 193
    functionDepth: 6
    functionLinenumber: 193
    functionLinenumberEnd: 214
    functionName: ndpi_search_slp_v1
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_slp_add_connection
    - slp_check_packet_length
    - NDPI_EXCLUDE_DISSECTOR
    - slp_check_fid
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_slp_v1(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/slp.c:222,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/slp.c:225,1
    - Dst: slp_check_packet_length
      Src: /src/ndpi/src/lib/protocols/slp.c:230,1
    - Dst: slp_check_fid
      Src: /src/ndpi/src/lib/protocols/slp.c:233,1
    - Dst: ndpi_int_slp_add_connection
      Src: /src/ndpi/src/lib/protocols/slp.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: ndpi_search_slp_v2
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_slp_add_connection
    - slp_check_packet_length
    - NDPI_EXCLUDE_DISSECTOR
    - slp_check_fid
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_slp_v2(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/slp.c:279,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/slp.c:283,1
    - Dst: slp_dissect_url_entries
      Src: /src/ndpi/src/lib/protocols/slp.c:287,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/slp.c:288,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/slp.c:291,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/slp.c:295,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 300
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 300
    functionName: ndpi_dissect_slp_v2
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached:
    - strncpy
    - ntohs
    - slp_dissect_url_entries
    - ndpi_set_risk
    linkageType: ''
    returnType: void
    signature: "void ndpi_dissect_slp_v2(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/slp.c:307,1
    - Dst: ndpi_search_slp_v1
      Src: /src/ndpi/src/lib/protocols/slp.c:311,1
    - Dst: ndpi_search_slp_v2
      Src: /src/ndpi/src/lib/protocols/slp.c:314,1
    - Dst: ndpi_dissect_slp_v2
      Src: /src/ndpi/src/lib/protocols/slp.c:315,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/slp.c:319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 322
      start: 302
    functionDepth: 7
    functionLinenumber: 302
    functionLinenumberEnd: 322
    functionName: ndpi_search_slp
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 0
    functionsReached:
    - ndpi_search_slp_v1
    - ndpi_search_slp_v2
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_dissect_slp_v2
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_slp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/slp.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: init_slp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/slp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_slp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/teredo.c:33,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/teredo.c:36,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/teredo.c:37,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/teredo.c:37,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/teredo.c:39,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/teredo.c:40,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/teredo.c:42,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: ndpi_search_teredo
    functionSourceFile: /src/ndpi/src/lib/protocols/teredo.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_teredo(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/teredo.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: init_teredo_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/teredo.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_teredo_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/riotgames.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/riotgames.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_riotgames_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/riotgames.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_riotgames_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                              struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/riotgames.c:44,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/riotgames.c:47,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/riotgames.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/riotgames.c:48,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/riotgames.c:48,1
    - Dst: ndpi_int_riotgames_add_connection
      Src: /src/ndpi/src/lib/protocols/riotgames.c:50,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/riotgames.c:55,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/riotgames.c:55,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/riotgames.c:56,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/riotgames.c:56,1
    - Dst: ndpi_int_riotgames_add_connection
      Src: /src/ndpi/src/lib/protocols/riotgames.c:58,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/riotgames.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: ndpi_search_riotgames
    functionSourceFile: /src/ndpi/src/lib/protocols/riotgames.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_riotgames_add_connection
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_riotgames(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/riotgames.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: init_riotgames_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/riotgames.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_riotgames_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/openwire.c:36,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/openwire.c:39,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/openwire.c:39,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/openwire.c:42,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/openwire.c:43,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/openwire.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/openwire.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: ndpi_search_openwire
    functionSourceFile: /src/ndpi/src/lib/protocols/openwire.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_openwire(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/openwire.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: init_openwire_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/openwire.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_openwire_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mysql.c:38,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mysql.c:44,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mysql.c:47,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mysql.c:48,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mysql.c:49,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mysql.c:50,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mysql.c:51,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/mysql.c:52,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mysql.c:54,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mysql.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mysql.c:61,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 62
    functionName: ndpi_search_mysql_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/mysql.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_mysql_tcp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mysql.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: init_mysql_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mysql.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mysql_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: ndpi_int_teamspeak_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/teamspeak.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_teamspeak_add_connection(struct ndpi_detection_module_struct\n
      \                                             *ndpi_struct, struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:38,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:42,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:42,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:44,1
    - Dst: ndpi_int_teamspeak_add_connection
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:45,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:50,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:51,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:52,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:54,1
    - Dst: ndpi_int_teamspeak_add_connection
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:55,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:84,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:90,1
    - Dst: ndpi_int_teamspeak_add_connection
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:91,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 41
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 94
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 94
    functionName: ndpi_search_teamspeak
    functionSourceFile: /src/ndpi/src/lib/protocols/teamspeak.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - get_u_int32_t
    - ndpi_int_teamspeak_add_connection
    - strlen
    linkageType: ''
    returnType: void
    signature: void ndpi_search_teamspeak(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/teamspeak.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: init_teamspeak_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/teamspeak.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_teamspeak_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/resp.c:39,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/protocols/resp.c:57,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/resp.c:62,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/resp.c:63,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/resp.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/resp.c:69,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 70
    functionName: ndpi_search_resp
    functionSourceFile: /src/ndpi/src/lib/protocols/resp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_isdigit
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_resp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/resp.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: init_resp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/resp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_resp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/telegram.c:36,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/telegram.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - confidence
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: ndpi_int_telegram_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/telegram.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_telegram_add_connection(struct ndpi_detection_module_struct\n
      \                                            *ndpi_struct, struct ndpi_flow_struct
      *flow,\n\t\t\t\t\t     ndpi_confidence_t confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: is_telegram_port_range
    functionSourceFile: /src/ndpi/src/lib/protocols/telegram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t is_telegram_port_range(u_int16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/telegram.c:52,1
    - Dst: ndpi_int_telegram_add_connection
      Src: /src/ndpi/src/lib/protocols/telegram.c:62,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/telegram.c:73,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/telegram.c:73,1
    - Dst: is_telegram_port_range
      Src: /src/ndpi/src/lib/protocols/telegram.c:75,1
    - Dst: is_telegram_port_range
      Src: /src/ndpi/src/lib/protocols/telegram.c:75,1
    - Dst: ndpi_int_telegram_add_connection
      Src: /src/ndpi/src/lib/protocols/telegram.c:95,1
    - Dst: switch_extra_dissection_to_stun
      Src: /src/ndpi/src/lib/protocols/telegram.c:103,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/telegram.c:110,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 111
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 111
    functionName: ndpi_search_telegram
    functionSourceFile: /src/ndpi/src/lib/protocols/telegram.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_telegram_add_connection
    - is_telegram_port_range
    - switch_extra_dissection_to_stun
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_telegram(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/telegram.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: init_telegram_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/telegram.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_telegram_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/netflow.c:109,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/netflow.c:122,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/netflow.c:145,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/netflow.c:157,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/netflow.c:165,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/netflow.c:170,1
    - Dst: do_gettimeofday
      Src: /src/ndpi/src/lib/protocols/netflow.c:172,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netflow.c:177,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/netflow.c:178,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/netflow.c:182,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 183
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 183
    functionName: ndpi_search_netflow
    functionSourceFile: /src/ndpi/src/lib/protocols/netflow.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - do_gettimeofday
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_netflow(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/netflow.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: init_netflow_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/netflow.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_netflow_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: ajp_header
    functionSourceFile: /src/ndpi/src/lib/protocols/ajp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ajp_header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ajp.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: set_ajp_detected
    functionSourceFile: /src/ndpi/src/lib/protocols/ajp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void set_ajp_detected(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ajp.c:75,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/ajp.c:79,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ajp.c:81,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ajp.c:82,1
    - Dst: set_ajp_detected
      Src: /src/ndpi/src/lib/protocols/ajp.c:88,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ajp.c:91,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ajp.c:92,1
    - Dst: set_ajp_detected
      Src: /src/ndpi/src/lib/protocols/ajp.c:99,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ajp.c:102,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ajp.c:103,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ajp.c:106,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ajp.c:107,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 109
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 109
    functionName: ndpi_check_ajp
    functionSourceFile: /src/ndpi/src/lib/protocols/ajp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - set_ajp_detected
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_ajp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ajp.c:114,1
    - Dst: ndpi_check_ajp
      Src: /src/ndpi/src/lib/protocols/ajp.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 7
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: ndpi_search_ajp
    functionSourceFile: /src/ndpi/src/lib/protocols/ajp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG
    - ndpi_check_ajp
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ajp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ajp.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: init_ajp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ajp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ajp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/softether.c:61,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/softether.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: ndpi_int_softether_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/softether.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_softether_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n\t\t\t\t\t      struct ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/softether.c:88,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/softether.c:88,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/softether.c:100,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/softether.c:100,1
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/protocols/softether.c:115,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/softether.c:115,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 4
    argNames:
    - t
    - v
    - payload
    - payload_len
    argTypes:
    - enum softether_value_type
    - struct softether_value*
    - u_int8_t*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 125
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 125
    functionName: dissect_softether_type
    functionSourceFile: /src/ndpi/src/lib/protocols/softether.c
    functionUses: 0
    functionsReached:
    - ndpi_ntohll
    - get_u_int64_t
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: size_t
    signature: "size_t dissect_softether_type(enum softether_value_type t,\n                                     struct
      softether_value *v,\n                                     u_int8_t const *payload,\n
      \                                    u_int16_t payload_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - type
    - result
    argTypes:
    - u_int32_t
    - enum softether_value_type*
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: softether_type_to_enum
    functionSourceFile: /src/ndpi/src/lib/protocols/softether.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int softether_type_to_enum(u_int32_t type, enum softether_value_type
      *result)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: softether_type_to_enum
      Src: /src/ndpi/src/lib/protocols/softether.c:157,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/softether.c:157,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/softether.c:157,1
    - Dst: softether_type_to_enum
      Src: /src/ndpi/src/lib/protocols/softether.c:158,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/softether.c:158,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/softether.c:158,1
    - Dst: dissect_softether_type
      Src: /src/ndpi/src/lib/protocols/softether.c:164,1
    - Dst: dissect_softether_type
      Src: /src/ndpi/src/lib/protocols/softether.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - payload
    - payload_len
    - first_value
    - second_value
    argTypes:
    - u_int8_t*
    - u_int16_t
    - struct softether_value*
    - struct softether_value*
    constantsTouched: []
    func_position:
      end: 172
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 172
    functionName: dissect_softether_tuples
    functionSourceFile: /src/ndpi/src/lib/protocols/softether.c
    functionUses: 0
    functionsReached:
    - dissect_softether_type
    - softether_type_to_enum
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: size_t
    signature: "size_t dissect_softether_tuples(u_int8_t const *payload, u_int16_t
      payload_len,\n                                       struct softether_value
      *first_value,\n                                       struct softether_value
      *second_value)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/softether.c:189,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/softether.c:189,1
    - Dst: dissect_softether_type
      Src: /src/ndpi/src/lib/protocols/softether.c:196,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/softether.c:203,1
    - Dst: dissect_softether_tuples
      Src: /src/ndpi/src/lib/protocols/softether.c:207,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/softether.c:213,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/softether.c:221,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/softether.c:229,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/softether.c:242,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/softether.c:246,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 50
    argCount: 2
    argNames:
    - flow
    - packet
    argTypes:
    - struct ndpi_flow_struct*
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 250
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 250
    functionName: dissect_softether_host_fqdn
    functionSourceFile: /src/ndpi/src/lib/protocols/softether.c
    functionUses: 0
    functionsReached:
    - strncmp
    - dissect_softether_tuples
    - dissect_softether_type
    - ndpi_min
    - strncpy
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: int
    signature: "int dissect_softether_host_fqdn(struct ndpi_flow_struct *flow,\n                                       struct
      ndpi_packet_struct const *packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:259,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:260,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/softether.c:263,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:263,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/softether.c:266,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:266,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:268,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/softether.c:272,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:274,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/softether.c:276,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:277,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:282,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/softether.c:285,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:287,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/softether.c:288,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/softether.c:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - flow
    - packet
    argTypes:
    - struct ndpi_flow_struct*
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 294
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 294
    functionName: dissect_softether_ip_port
    functionSourceFile: /src/ndpi/src/lib/protocols/softether.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_min
    - NDPI_STATICSTRING_LEN
    - strncpy
    - ndpi_strnstr
    linkageType: ''
    returnType: int
    signature: "int dissect_softether_ip_port(struct ndpi_flow_struct *flow,\n                                     struct
      ndpi_packet_struct const *packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/softether.c:302,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/softether.c:307,1
    - Dst: dissect_softether_ip_port
      Src: /src/ndpi/src/lib/protocols/softether.c:313,1
    - Dst: ndpi_int_softether_add_connection
      Src: /src/ndpi/src/lib/protocols/softether.c:314,1
    - Dst: dissect_softether_host_fqdn
      Src: /src/ndpi/src/lib/protocols/softether.c:320,1
    - Dst: ndpi_int_softether_add_connection
      Src: /src/ndpi/src/lib/protocols/softether.c:321,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/softether.c:326,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 327
      start: 298
    functionDepth: 6
    functionLinenumber: 298
    functionLinenumberEnd: 327
    functionName: ndpi_search_softether
    functionSourceFile: /src/ndpi/src/lib/protocols/softether.c
    functionUses: 0
    functionsReached:
    - ndpi_int_softether_add_connection
    - dissect_softether_ip_port
    - dissect_softether_host_fqdn
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_softether(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dissect_softether_ip_port
      Src: /src/ndpi/src/lib/protocols/softether.c:333,1
    - Dst: dissect_softether_host_fqdn
      Src: /src/ndpi/src/lib/protocols/softether.c:334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 346
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 346
    functionName: ndpi_search_softether_again
    functionSourceFile: /src/ndpi/src/lib/protocols/softether.c
    functionUses: 0
    functionsReached:
    - dissect_softether_ip_port
    - dissect_softether_host_fqdn
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_softether_again(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t       struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/softether.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: init_softether_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/softether.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_softether_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: zoom_sfu_enc
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON zoom_sfu_enc
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: zoom_media_enc
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON zoom_media_enc
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zoom.c:61,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/zoom.c:62,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/zoom.c:65,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/zoom.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: ndpi_int_zoom_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - keep_extra_dissection
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_zoom_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/zoom.c:77,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/zoom.c:77,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/zoom.c:78,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/zoom.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: is_zoom_port
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: int
    signature: int is_zoom_port(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_rtp_or_rtcp
      Src: /src/ndpi/src/lib/protocols/zoom.c:93,1
    - Dst: is_rtp_or_rtcp
      Src: /src/ndpi/src/lib/protocols/zoom.c:102,1
    - Dst: is_rtp_or_rtcp
      Src: /src/ndpi/src/lib/protocols/zoom.c:110,1
    - Dst: is_rtp_or_rtcp
      Src: /src/ndpi/src/lib/protocols/zoom.c:118,1
    - Dst: is_rtp_or_rtcp
      Src: /src/ndpi/src/lib/protocols/zoom.c:128,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - payload
    - payload_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_char*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 138
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 138
    functionName: is_zme
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 0
    functionsReached:
    - is_rtp_or_rtcp
    linkageType: ''
    returnType: int
    signature: "int is_zme(struct ndpi_detection_module_struct *ndpi_struct,\n                  struct
      ndpi_flow_struct *flow,\n                  const u_char *payload, u_int16_t
      payload_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_zme
      Src: /src/ndpi/src/lib/protocols/zoom.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: is_sfu_5
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 0
    functionsReached:
    - is_zme
    linkageType: ''
    returnType: int
    signature: "int is_sfu_5(struct ndpi_detection_module_struct *ndpi_struct,\n                    struct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: keep_extra_dissection
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int keep_extra_dissection(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/zoom.c:166,1
    - Dst: is_sfu_5
      Src: /src/ndpi/src/lib/protocols/zoom.c:169,1
    - Dst: ndpi_int_zoom_add_connection
      Src: /src/ndpi/src/lib/protocols/zoom.c:170,1
    - Dst: is_zme
      Src: /src/ndpi/src/lib/protocols/zoom.c:173,1
    - Dst: ndpi_int_zoom_add_connection
      Src: /src/ndpi/src/lib/protocols/zoom.c:174,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/zoom.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 178
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 178
    functionName: zoom_search_again
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 0
    functionsReached:
    - keep_extra_dissection
    - is_zme
    - is_sfu_5
    - ndpi_int_zoom_add_connection
    linkageType: ''
    returnType: int
    signature: "int zoom_search_again(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/zoom.c:189,1
    - Dst: is_zoom_port
      Src: /src/ndpi/src/lib/protocols/zoom.c:191,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zoom.c:194,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zoom.c:195,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zoom.c:196,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zoom.c:197,1
    - Dst: ndpi_int_zoom_add_connection
      Src: /src/ndpi/src/lib/protocols/zoom.c:198,1
    - Dst: ndpi_int_zoom_add_connection
      Src: /src/ndpi/src/lib/protocols/zoom.c:206,1
    - Dst: is_sfu_5
      Src: /src/ndpi/src/lib/protocols/zoom.c:210,1
    - Dst: ndpi_int_zoom_add_connection
      Src: /src/ndpi/src/lib/protocols/zoom.c:211,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zoom.c:215,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/zoom.c:231,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/zoom.c:234,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/zoom.c:237,1
    - Dst: ndpi_int_zoom_add_connection
      Src: /src/ndpi/src/lib/protocols/zoom.c:239,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/zoom.c:245,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 246
      start: 180
    functionDepth: 6
    functionLinenumber: 180
    functionLinenumberEnd: 246
    functionName: ndpi_search_zoom
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 0
    functionsReached:
    - ndpi_int_zoom_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - is_sfu_5
    - ntohl
    - is_zoom_port
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_zoom(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/zoom.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: init_zoom_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/zoom.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_zoom_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/eaq.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: ndpi_int_eaq_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/eaq.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_eaq_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\tstruct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/eaq.c:46,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/eaq.c:46,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/eaq.c:48,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/eaq.c:69,1
    - Dst: ndpi_int_eaq_add_connection
      Src: /src/ndpi/src/lib/protocols/eaq.c:70,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/eaq.c:77,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 79
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 79
    functionName: ndpi_search_eaq
    functionSourceFile: /src/ndpi/src/lib/protocols/eaq.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_int_eaq_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_eaq(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/eaq.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: init_eaq_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/eaq.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_eaq_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/jabber.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - protocol
    - confidence
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int32_t
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: ndpi_int_jabber_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/jabber.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_jabber_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t   struct ndpi_flow_struct *flow,\n\t\t\t\t\t   u_int32_t
      protocol, ndpi_confidence_t confidence)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/jabber.c:57,1
    - Dst: ndpi_int_jabber_add_connection
      Src: /src/ndpi/src/lib/protocols/jabber.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - x
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 6
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: check_content_type_and_change_protocol
    functionSourceFile: /src/ndpi/src/lib/protocols/jabber.c
    functionUses: 3
    functionsReached:
    - ndpi_strnstr
    - ndpi_int_jabber_add_connection
    linkageType: ''
    returnType: void
    signature: "void check_content_type_and_change_protocol(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t\t   struct ndpi_flow_struct *flow, u_int16_t x)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/jabber.c:71,1
    - Dst: ndpi_int_jabber_add_connection
      Src: /src/ndpi/src/lib/protocols/jabber.c:79,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/jabber.c:82,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/jabber.c:89,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/jabber.c:95,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/jabber.c:96,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/jabber.c:96,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/jabber.c:97,1
    - Dst: ndpi_int_jabber_add_connection
      Src: /src/ndpi/src/lib/protocols/jabber.c:100,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/jabber.c:104,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/jabber.c:105,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/jabber.c:105,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/jabber.c:106,1
    - Dst: ndpi_int_jabber_add_connection
      Src: /src/ndpi/src/lib/protocols/jabber.c:109,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/jabber.c:113,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/jabber.c:114,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/jabber.c:114,1
    - Dst: ndpi_int_jabber_add_connection
      Src: /src/ndpi/src/lib/protocols/jabber.c:116,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/jabber.c:120,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/jabber.c:121,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/jabber.c:122,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/jabber.c:122,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/jabber.c:125,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/jabber.c:126,1
    - Dst: ndpi_int_jabber_add_connection
      Src: /src/ndpi/src/lib/protocols/jabber.c:129,1
    - Dst: check_content_type_and_change_protocol
      Src: /src/ndpi/src/lib/protocols/jabber.c:132,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/jabber.c:137,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 36
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 139
      start: 64
    functionDepth: 6
    functionLinenumber: 64
    functionLinenumberEnd: 139
    functionName: ndpi_search_jabber_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/jabber.c
    functionUses: 0
    functionsReached:
    - ndpi_int_jabber_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_ARRAY_LENGTH
    - NDPI_LOG_DBG
    - ndpi_strnstr
    - check_content_type_and_change_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_jabber_tcp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/jabber.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: init_jabber_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/jabber.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_jabber_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ipsec.c:42,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ipsec.c:45,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/ipsec.c:46,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ipsec.c:49,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ipsec.c:52,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ipsec.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - isakmp_type
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - enum isakmp_type
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: ndpi_int_ipsec_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ipsec.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ipsec_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                          struct ndpi_flow_struct
      * const flow,\n                                          enum isakmp_type isakmp_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ipsec.c:64,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ipsec.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: ndpi_int_check_ports
    functionSourceFile: /src/ndpi/src/lib/protocols/ipsec.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: enum isakmp_type
    signature: enum isakmp_type ndpi_int_check_ports(struct ndpi_packet_struct const
      * const packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_int_check_ports
      Src: /src/ndpi/src/lib/protocols/ipsec.c:86,1
    - Dst: ndpi_int_check_ports
      Src: /src/ndpi/src/lib/protocols/ipsec.c:92,1
    - Dst: ndpi_int_check_ports
      Src: /src/ndpi/src/lib/protocols/ipsec.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - packet
    - isakmp_offset
    - isakmp_type
    argTypes:
    - struct ndpi_packet_struct*
    - u_int16_t
    - enum isakmp_type
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: ndpi_int_check_isakmp_v1
    functionSourceFile: /src/ndpi/src/lib/protocols/ipsec.c
    functionUses: 0
    functionsReached:
    - ndpi_int_check_ports
    linkageType: ''
    returnType: enum isakmp_type
    signature: "enum isakmp_type ndpi_int_check_isakmp_v1(struct ndpi_packet_struct
      const * const packet,\n                                                 u_int16_t
      isakmp_offset, enum isakmp_type isakmp_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_int_check_ports
      Src: /src/ndpi/src/lib/protocols/ipsec.c:111,1
    - Dst: ndpi_int_check_ports
      Src: /src/ndpi/src/lib/protocols/ipsec.c:118,1
    - Dst: ndpi_int_check_ports
      Src: /src/ndpi/src/lib/protocols/ipsec.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - packet
    - isakmp_offset
    - isakmp_type
    argTypes:
    - struct ndpi_packet_struct*
    - u_int16_t
    - enum isakmp_type
    constantsTouched: []
    func_position:
      end: 128
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 128
    functionName: ndpi_int_check_isakmp_v2
    functionSourceFile: /src/ndpi/src/lib/protocols/ipsec.c
    functionUses: 0
    functionsReached:
    - ndpi_int_check_ports
    linkageType: ''
    returnType: enum isakmp_type
    signature: "enum isakmp_type ndpi_int_check_isakmp_v2(struct ndpi_packet_struct
      const * const packet,\n                                                 u_int16_t
      isakmp_offset, enum isakmp_type isakmp_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ipsec.c:137,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ipsec.c:141,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/ipsec.c:146,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ipsec.c:151,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ipsec.c:160,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ipsec.c:170,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/ipsec.c:170,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ipsec.c:172,1
    - Dst: ndpi_int_check_isakmp_v1
      Src: /src/ndpi/src/lib/protocols/ipsec.c:178,1
    - Dst: ndpi_int_check_isakmp_v2
      Src: /src/ndpi/src/lib/protocols/ipsec.c:180,1
    - Dst: ndpi_int_ipsec_add_connection
      Src: /src/ndpi/src/lib/protocols/ipsec.c:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 184
      start: 130
    functionDepth: 6
    functionLinenumber: 130
    functionLinenumberEnd: 184
    functionName: ndpi_search_ipsec
    functionSourceFile: /src/ndpi/src/lib/protocols/ipsec.c
    functionUses: 0
    functionsReached:
    - ndpi_int_check_isakmp_v1
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_check_isakmp_v2
    - NDPI_LOG_DBG
    - ntohl
    - ndpi_int_ipsec_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ipsec(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ipsec.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: init_ipsec_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ipsec.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ipsec_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mqtt.c:59,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mqtt.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: ndpi_int_mqtt_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/mqtt.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_mqtt_add_connection (struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\tstruct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - buf_len
    - num_bytes
    argTypes:
    - unsigned char*
    - int
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: get_var_int
    functionSourceFile: /src/ndpi/src/lib/protocols/mqtt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t get_var_int(const unsigned char *buf, int buf_len, u_int8_t
      *num_bytes)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:92,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:95,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:96,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mqtt.c:100,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:107,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:108,1
    - Dst: get_var_int
      Src: /src/ndpi/src/lib/protocols/mqtt.c:112,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:114,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:115,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:118,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:120,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:121,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mqtt.c:126,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:128,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:129,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mqtt.c:134,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:139,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:140,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:144,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:145,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mqtt.c:148,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:153,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:154,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mqtt.c:157,1
    - Dst: ndpi_int_mqtt_add_connection
      Src: /src/ndpi/src/lib/protocols/mqtt.c:158,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:164,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:165,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mqtt.c:168,1
    - Dst: ndpi_int_mqtt_add_connection
      Src: /src/ndpi/src/lib/protocols/mqtt.c:169,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mqtt.c:173,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:176,1
    - Dst: ndpi_int_mqtt_add_connection
      Src: /src/ndpi/src/lib/protocols/mqtt.c:177,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:185,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:186,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:191,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:192,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:196,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:197,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:203,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:204,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mqtt.c:208,1
    - Dst: ndpi_int_mqtt_add_connection
      Src: /src/ndpi/src/lib/protocols/mqtt.c:209,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:214,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:215,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mqtt.c:218,1
    - Dst: ndpi_int_mqtt_add_connection
      Src: /src/ndpi/src/lib/protocols/mqtt.c:219,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:225,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:226,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mqtt.c:229,1
    - Dst: ndpi_int_mqtt_add_connection
      Src: /src/ndpi/src/lib/protocols/mqtt.c:230,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mqtt.c:236,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mqtt.c:237,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mqtt.c:240,1
    - Dst: ndpi_int_mqtt_add_connection
      Src: /src/ndpi/src/lib/protocols/mqtt.c:241,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 135
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 246
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 246
    functionName: ndpi_search_mqtt
    functionSourceFile: /src/ndpi/src/lib/protocols/mqtt.c
    functionUses: 0
    functionsReached:
    - get_var_int
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_int_mqtt_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_mqtt(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mqtt.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: init_mqtt_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mqtt.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mqtt_dissector (struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - response
    argTypes:
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ndpi_validate_cassandra_response
    functionSourceFile: /src/ndpi/src/lib/protocols/cassandra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_validate_cassandra_response(u_int8_t response)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - request
    argTypes:
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: ndpi_validate_cassandra_request
    functionSourceFile: /src/ndpi/src/lib/protocols/cassandra.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_validate_cassandra_request(u_int8_t request)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/cassandra.c:47,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/cassandra.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: ndpi_int_cassandra_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/cassandra.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_cassandra_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                              struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/cassandra.c:59,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/cassandra.c:62,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/cassandra.c:62,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/cassandra.c:64,1
    - Dst: ndpi_int_cassandra_add_connection
      Src: /src/ndpi/src/lib/protocols/cassandra.c:65,1
    - Dst: ndpi_validate_cassandra_response
      Src: /src/ndpi/src/lib/protocols/cassandra.c:71,1
    - Dst: ndpi_validate_cassandra_request
      Src: /src/ndpi/src/lib/protocols/cassandra.c:72,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/cassandra.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/cassandra.c:79,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/cassandra.c:87,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/cassandra.c:89,1
    - Dst: ndpi_int_cassandra_add_connection
      Src: /src/ndpi/src/lib/protocols/cassandra.c:90,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 93
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 93
    functionName: ndpi_search_cassandra
    functionSourceFile: /src/ndpi/src/lib/protocols/cassandra.c
    functionUses: 0
    functionsReached:
    - ndpi_validate_cassandra_request
    - ndpi_int_cassandra_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_validate_cassandra_response
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_cassandra(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/cassandra.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: init_cassandra_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/cassandra.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_cassandra_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/armagetron.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: ndpi_int_armagetron_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/armagetron.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_armagetron_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t       struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/armagetron.c:43,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/armagetron.c:47,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/armagetron.c:47,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/armagetron.c:48,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/armagetron.c:48,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/armagetron.c:50,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/armagetron.c:51,1
    - Dst: ndpi_int_armagetron_add_connection
      Src: /src/ndpi/src/lib/protocols/armagetron.c:52,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/armagetron.c:57,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/armagetron.c:57,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/armagetron.c:58,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/armagetron.c:58,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/armagetron.c:59,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/armagetron.c:59,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/armagetron.c:61,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/armagetron.c:62,1
    - Dst: ndpi_int_armagetron_add_connection
      Src: /src/ndpi/src/lib/protocols/armagetron.c:63,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/armagetron.c:69,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 70
    functionName: ndpi_search_armagetron_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/armagetron.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - htonl
    - NDPI_LOG_INFO
    - ndpi_int_armagetron_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_armagetron_udp(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/armagetron.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: init_armagetron_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/armagetron.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_armagetron_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/hart-ip.c:62,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hart-ip.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: ndpi_int_hart_ip_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/hart-ip.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_hart_ip_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                            struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/hart-ip.c:74,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/hart-ip.c:91,1
    - Dst: ndpi_int_hart_ip_add_connection
      Src: /src/ndpi/src/lib/protocols/hart-ip.c:95,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/hart-ip.c:100,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 101
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 101
    functionName: ndpi_search_hart_ip
    functionSourceFile: /src/ndpi/src/lib/protocols/hart-ip.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_hart_ip_add_connection
    - NDPI_LOG_DBG
    - ntohs
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_hart_ip(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/hart-ip.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: init_hart_ip_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/hart-ip.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_hart_ip_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: ndpi_int_dnscrypt_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/dnscrypt.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_dnscrypt_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                             struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:40,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:44,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:44,1
    - Dst: ndpi_int_dnscrypt_add_connection
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:46,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:51,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:52,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:52,1
    - Dst: ndpi_int_dnscrypt_add_connection
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 68
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 68
    functionName: ndpi_search_dnscrypt
    functionSourceFile: /src/ndpi/src/lib/protocols/dnscrypt.c
    functionUses: 0
    functionsReached:
    - strncmp
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_dnscrypt_add_connection
    - NDPI_LOG_DBG
    - strncasecmp
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_dnscrypt(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dnscrypt.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: init_dnscrypt_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dnscrypt.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dnscrypt_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/s7comm.c:41,1
    - Dst: tpkt_verify_hdr
      Src: /src/ndpi/src/lib/protocols/s7comm.c:43,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/s7comm.c:44,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/s7comm.c:45,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/s7comm.c:50,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/s7comm.c:51,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/s7comm.c:57,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/s7comm.c:59,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/s7comm.c:60,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/s7comm.c:68,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 69
    functionName: ndpi_search_s7comm
    functionSourceFile: /src/ndpi/src/lib/protocols/s7comm.c
    functionUses: 0
    functionsReached:
    - tpkt_verify_hdr
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_s7comm(struct ndpi_detection_module_struct *ndpi_struct,\r\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/s7comm.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: init_s7comm_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/s7comm.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_s7comm_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/json-rpc.c:37,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/json-rpc.c:43,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/json-rpc.c:45,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/json-rpc.c:46,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/json-rpc.c:53,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/json-rpc.c:55,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/json-rpc.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/json-rpc.c:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 62
    functionName: ndpi_search_json_rpc
    functionSourceFile: /src/ndpi/src/lib/protocols/json-rpc.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_strnstr
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - LINE_ENDS
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_json_rpc(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/json-rpc.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: init_json_rpc_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/json-rpc.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_json_rpc_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/pptp.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ndpi_int_pptp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/pptp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_pptp_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t\t\t\t\t\t
      \  *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/pptp.c:43,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/pptp.c:45,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/pptp.c:45,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/pptp.c:46,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/pptp.c:46,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/pptp.c:47,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/pptp.c:47,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/pptp.c:48,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/pptp.c:48,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/pptp.c:51,1
    - Dst: ndpi_int_pptp_add_connection
      Src: /src/ndpi/src/lib/protocols/pptp.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/pptp.c:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: ndpi_search_pptp
    functionSourceFile: /src/ndpi/src/lib/protocols/pptp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - htonl
    - ndpi_int_pptp_add_connection
    - NDPI_LOG_INFO
    - get_u_int32_t
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_pptp(struct ndpi_detection_module_struct\n\t\t\t
      \    *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/pptp.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: init_pptp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/pptp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_pptp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - proto
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: is_subclassification_real_by_proto
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_subclassification_real_by_proto(u_int16_t proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_subclassification_real_by_proto
      Src: /src/ndpi/src/lib/protocols/stun.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: is_subclassification_real
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached:
    - is_subclassification_real_by_proto
    linkageType: ''
    returnType: int
    signature: int is_subclassification_real(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:105,1
    - Dst: is_subclassification_real
      Src: /src/ndpi/src/lib/protocols/stun.c:112,1
    - Dst: is_subclassification_real
      Src: /src/ndpi/src/lib/protocols/stun.c:118,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - new_app_proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 128
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 128
    functionName: is_new_subclassification_better
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached:
    - is_subclassification_real
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: int
    signature: "int is_new_subclassification_better(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                           struct ndpi_flow_struct
      *flow,\n                                           u_int16_t new_app_proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_stun_lru_key
      Src: /src/ndpi/src/lib/protocols/stun.c:140,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:141,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:143,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:145,1
    - Dst: get_stun_lru_key
      Src: /src/ndpi/src/lib/protocols/stun.c:149,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:150,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:152,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:154,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:160,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:166,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 175
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 175
    functionName: search_into_cache
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 1
    functionsReached:
    - get_stun_lru_key
    - printf
    - ndpi_lru_find_cache
    - ndpi_get_current_time
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t search_into_cache(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_stun_lru_key
      Src: /src/ndpi/src/lib/protocols/stun.c:186,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:187,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:187,1
    - Dst: get_stun_lru_key
      Src: /src/ndpi/src/lib/protocols/stun.c:188,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:189,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:189,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:192,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:194,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - app_proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 197
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 197
    functionName: add_to_cache
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 11
    functionsReached:
    - printf
    - ndpi_lru_add_to_cache
    - ntohs
    - ndpi_get_current_time
    - get_stun_lru_key
    linkageType: ''
    returnType: void
    signature: "void add_to_cache(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      struct ndpi_flow_struct *flow,\n\t\t\t u_int16_t app_proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:211,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/stun.c:212,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/stun.c:217,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/stun.c:223,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:228,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/stun.c:239,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/stun.c:245,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 6
    argNames:
    - payload
    - payload_length
    - 'off'
    - real_len
    - ap
    - ap_monit
    argTypes:
    - u_int8_t*
    - u_int16_t
    - int
    - u_int16_t
    - ndpi_address_port*
    - ndpi_address_port*
    constantsTouched: []
    func_position:
      end: 250
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 250
    functionName: parse_ip_port_attribute
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ntohl
    - ntohs
    - htonl
    linkageType: ''
    returnType: void
    signature: "void parse_ip_port_attribute(const u_int8_t *payload, u_int16_t payload_length,\n
      \                                   int off, u_int16_t real_len, ndpi_address_port
      *ap,\n                                    ndpi_address_port *ap_monit)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:275,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/stun.c:276,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:292,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/protocols/stun.c:293,1
    - Dst: is_subclassification_real
      Src: /src/ndpi/src/lib/protocols/stun.c:297,1
    - Dst: get_stun_lru_key_raw4
      Src: /src/ndpi/src/lib/protocols/stun.c:298,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:300,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:302,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:304,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:313,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/stun.c:314,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/stun.c:315,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/stun.c:316,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/stun.c:317,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/stun.c:322,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/stun.c:328,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:333,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/protocols/stun.c:334,1
    - Dst: is_subclassification_real
      Src: /src/ndpi/src/lib/protocols/stun.c:338,1
    - Dst: get_stun_lru_key_raw6
      Src: /src/ndpi/src/lib/protocols/stun.c:339,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:341,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:343,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:345,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 11
    argNames:
    - ndpi_struct
    - flow
    - payload
    - payload_length
    - 'off'
    - real_len
    - ap
    - ap_monit
    - transaction_id
    - magic_cookie
    - add_to_cache
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int8_t*
    - u_int16_t
    - int
    - u_int16_t
    - ndpi_address_port*
    - ndpi_address_port*
    - u_int32_t[]
    - u_int32_t
    - int
    constantsTouched: []
    func_position:
      end: 351
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 351
    functionName: parse_xor_ip_port_attribute
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ntohs
    - ndpi_lru_add_to_cache
    - printf
    - get_stun_lru_key_raw6
    - NDPI_LOG_DBG
    - get_stun_lru_key_raw4
    - htonl
    - ndpi_get_current_time
    - inet_ntop
    - is_subclassification_real
    linkageType: ''
    returnType: void
    signature: "void parse_xor_ip_port_attribute(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                        struct ndpi_flow_struct
      *flow,\n                                        const u_int8_t *payload, u_int16_t
      payload_length,\n                                        int off, u_int16_t
      real_len,\n                                        ndpi_address_port *ap, ndpi_address_port
      *ap_monit,\n                                        u_int32_t transaction_id[3],
      u_int32_t magic_cookie,\n                                        int add_to_cache)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/stun.c:373,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/stun.c:374,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:375,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:383,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/stun.c:383,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:390,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/stun.c:390,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:391,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/stun.c:391,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:396,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:397,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/stun.c:398,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/stun.c:399,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/stun.c:400,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/stun.c:401,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/stun.c:409,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:421,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:430,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:444,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:450,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:456,1
    - Dst: is_monitoring_enabled
      Src: /src/ndpi/src/lib/protocols/stun.c:464,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/protocols/stun.c:465,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:485,1
    - Dst: is_subclassification_real
      Src: /src/ndpi/src/lib/protocols/stun.c:493,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:494,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:494,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:503,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:504,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:507,1
    - Dst: parse_ip_port_attribute
      Src: /src/ndpi/src/lib/protocols/stun.c:512,1
    - Dst: parse_ip_port_attribute
      Src: /src/ndpi/src/lib/protocols/stun.c:519,1
    - Dst: parse_ip_port_attribute
      Src: /src/ndpi/src/lib/protocols/stun.c:526,1
    - Dst: parse_xor_ip_port_attribute
      Src: /src/ndpi/src/lib/protocols/stun.c:533,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/stun.c:561,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/stun.c:561,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:562,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/stun.c:573,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/stun.c:575,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/stun.c:576,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/stun.c:578,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/stun.c:580,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/stun.c:582,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/stun.c:584,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/stun.c:586,1
    - Dst: signal_search_into_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:588,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/stun.c:611,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/stun.c:618,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:629,1
    - Dst: stun_search_again
      Src: /src/ndpi/src/lib/protocols/stun.c:637,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:638,1
    - Dst: parse_xor_ip_port_attribute
      Src: /src/ndpi/src/lib/protocols/stun.c:647,1
    - Dst: parse_xor_ip_port_attribute
      Src: /src/ndpi/src/lib/protocols/stun.c:658,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/stun.c:668,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 209
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - app_proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t*
    constantsTouched: []
    func_position:
      end: 676
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 676
    functionName: is_stun
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 1
    functionsReached:
    - strncmp
    - ntohs
    - ndpi_hostname_sni_set
    - NDPI_LOG_DBG2
    - get_u_int16_t
    - ndpi_min
    - NDPI_LOG_DBG
    - stun_search_again
    - ndpi_calloc
    - strstr
    - signal_search_into_cache
    - ntohl
    - is_subclassification_real
    - parse_ip_port_attribute
    - parse_xor_ip_port_attribute
    - is_monitoring_enabled
    - current_pkt_from_client_to_server
    linkageType: ''
    returnType: int
    signature: "int is_stun(struct ndpi_detection_module_struct *ndpi_struct,\n            struct
      ndpi_flow_struct *flow,\n            u_int16_t *app_proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:700,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:708,1
    - Dst: is_monitoring_enabled
      Src: /src/ndpi/src/lib/protocols/stun.c:731,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:732,1
    - Dst: is_subclassification_real
      Src: /src/ndpi/src/lib/protocols/stun.c:738,1
    - Dst: is_monitoring_enabled
      Src: /src/ndpi/src/lib/protocols/stun.c:741,1
    - Dst: is_monitoring_enabled
      Src: /src/ndpi/src/lib/protocols/stun.c:756,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:757,1
    - Dst: is_monitoring_enabled
      Src: /src/ndpi/src/lib/protocols/stun.c:769,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:770,1
    - Dst: is_monitoring_enabled
      Src: /src/ndpi/src/lib/protocols/stun.c:779,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:780,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 56
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 788
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 788
    functionName: keep_extra_dissection
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 4
    functionsReached:
    - printf
    - ntohs
    - NDPI_LOG_DBG
    - is_subclassification_real
    - is_monitoring_enabled
    linkageType: ''
    returnType: int
    signature: "int keep_extra_dissection(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 800
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 800
    functionName: __get_master
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t __get_master(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/stun.c:815,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/stun.c:825,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:828,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:836,1
    - Dst: is_stun
      Src: /src/ndpi/src/lib/protocols/stun.c:837,1
    - Dst: is_new_subclassification_better
      Src: /src/ndpi/src/lib/protocols/stun.c:838,1
    - Dst: ndpi_int_stun_add_connection
      Src: /src/ndpi/src/lib/protocols/stun.c:839,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/stun.c:839,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:843,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:845,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:847,1
    - Dst: is_dtls
      Src: /src/ndpi/src/lib/protocols/stun.c:850,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:873,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:875,1
    - Dst: reset_detected_protocol
      Src: /src/ndpi/src/lib/protocols/stun.c:887,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/stun.c:890,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/stun.c:894,1
    - Dst: switch_to_tls
      Src: /src/ndpi/src/lib/protocols/stun.c:898,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:905,1
    - Dst: ndpi_int_stun_add_connection
      Src: /src/ndpi/src/lib/protocols/stun.c:906,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/stun.c:908,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:914,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/stun.c:916,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:924,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:927,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:932,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:937,1
    - Dst: stun_search_again
      Src: /src/ndpi/src/lib/protocols/stun.c:948,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:949,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:956,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:961,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:964,1
    - Dst: is_rtp_or_rtcp
      Src: /src/ndpi/src/lib/protocols/stun.c:967,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:969,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/stun.c:974,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:977,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:979,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:980,1
    - Dst: rtp_get_stream_type
      Src: /src/ndpi/src/lib/protocols/stun.c:983,1
    - Dst: ndpi_int_stun_add_connection
      Src: /src/ndpi/src/lib/protocols/stun.c:994,1
    - Dst: ndpi_int_stun_add_connection
      Src: /src/ndpi/src/lib/protocols/stun.c:1000,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/stun.c:1001,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/stun.c:1002,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/stun.c:1009,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1011,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1014,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1017,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1023,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/stun.c:1023,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1027,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/stun.c:1027,1
    - Dst: stun_search_again
      Src: /src/ndpi/src/lib/protocols/stun.c:1039,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1041,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1047,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1051,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/stun.c:1054,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 136
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1055
      start: 804
    functionDepth: 5
    functionLinenumber: 804
    functionLinenumberEnd: 1055
    functionName: stun_search_again
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 2
    functionsReached:
    - is_dtls
    - is_new_subclassification_better
    - ndpi_unset_risk
    - is_rtp_or_rtcp
    - ntohs
    - NDPI_LOG_DBG2
    - is_stun
    - NDPI_LOG_DBG
    - __get_master
    - ndpi_get_current_time
    - ndpi_set_detected_protocol
    - reset_detected_protocol
    - keep_extra_dissection
    - rtp_get_stream_type
    - NDPI_LOG_INFO
    - switch_to_tls
    - ndpi_min
    - get_u_int16_t
    - ndpi_int_stun_add_connection
    - stun_search_again
    linkageType: ''
    returnType: int
    signature: "int stun_search_again(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/stun.c:1069,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1082,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/stun.c:1083,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/stun.c:1086,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1087,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/stun.c:1088,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1093,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1095,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/stun.c:1097,1
    - Dst: stun_search_again
      Src: /src/ndpi/src/lib/protocols/stun.c:1105,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/stun.c:1110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1111
      start: 1059
    functionDepth: 6
    functionLinenumber: 1059
    functionLinenumberEnd: 1111
    functionName: stun_telegram_search_again
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_LOG_DBG2
    - memcmp
    - keep_extra_dissection
    - NDPI_LOG_DBG
    - stun_search_again
    linkageType: ''
    returnType: int
    signature: "int stun_telegram_search_again(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                      struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/stun.c:1118,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1118,1
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/stun.c:1123,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - flow
    - rev
    argTypes:
    - struct ndpi_flow_struct*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 1127
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1127
    functionName: get_stun_lru_key
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 2
    functionsReached:
    - ndpi_quick_hash64
    - ntohs
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t get_stun_lru_key(struct ndpi_flow_struct *flow, u_int8_t
      rev)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/stun.c:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ip
    - port_host_order
    argTypes:
    - u_int32_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1133
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1133
    functionName: get_stun_lru_key_raw4
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 1
    functionsReached:
    - htons
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t get_stun_lru_key_raw4(u_int32_t ip, u_int16_t port_host_order)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash
      Src: /src/ndpi/src/lib/protocols/stun.c:1138,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/stun.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ip
    - port_host_order
    argTypes:
    - u_int8_t*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1139
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1139
    functionName: get_stun_lru_key_raw6
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 1
    functionsReached:
    - ndpi_quick_hash
    - htons
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t get_stun_lru_key_raw6(u_int8_t *ip, u_int16_t port_host_order)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1154,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1158,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1158,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1159,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1160,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1160,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1161,1
    - Dst: ndpi_htonll
      Src: /src/ndpi/src/lib/protocols/stun.c:1163,1
    - Dst: ndpi_htonll
      Src: /src/ndpi/src/lib/protocols/stun.c:1164,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/stun.c:1166,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/stun.c:1167,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/stun.c:1168,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/stun.c:1169,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/stun.c:1175,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/stun.c:1176,1
    - Dst: is_subclassification_real_by_proto
      Src: /src/ndpi/src/lib/protocols/stun.c:1187,1
    - Dst: search_into_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:1188,1
    - Dst: is_subclassification_real_by_proto
      Src: /src/ndpi/src/lib/protocols/stun.c:1210,1
    - Dst: add_to_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:1211,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1215,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/stun.c:1216,1
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/protocols/stun.c:1222,1
    - Dst: switch_extra_dissection_to_stun
      Src: /src/ndpi/src/lib/protocols/stun.c:1226,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 48
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - app_proto
    - master_proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1227
      start: 1143
    functionDepth: 5
    functionLinenumber: 1143
    functionLinenumberEnd: 1227
    functionName: ndpi_int_stun_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 1
    functionsReached:
    - ntohs
    - is_subclassification_real_by_proto
    - ndpi_get_proto_category
    - memcmp
    - search_into_cache
    - add_to_cache
    - NDPI_LOG_DBG
    - ndpi_htonll
    - ntohl
    - ndpi_set_detected_protocol
    - switch_extra_dissection_to_stun
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_stun_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t struct ndpi_flow_struct *flow,\n\t\t\t\t\t u_int16_t
      app_proto,\n\t\t\t\t\t u_int16_t master_proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/stun.c:1236,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - std_callback
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - int
    constantsTouched: []
    func_position:
      end: 1245
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1245
    functionName: switch_extra_dissection_to_stun
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 3
    functionsReached:
    - keep_extra_dissection
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void switch_extra_dissection_to_stun(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t     struct ndpi_flow_struct *flow,\n\t\t\t\t     int
      std_callback)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stun.c:1255,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/stun.c:1261,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/stun.c:1262,1
    - Dst: is_stun
      Src: /src/ndpi/src/lib/protocols/stun.c:1266,1
    - Dst: ndpi_int_stun_add_connection
      Src: /src/ndpi/src/lib/protocols/stun.c:1269,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/stun.c:1269,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/stun.c:1275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1276
      start: 1249
    functionDepth: 6
    functionLinenumber: 1249
    functionLinenumberEnd: 1276
    functionName: ndpi_search_stun
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - is_stun
    - ndpi_int_stun_add_connection
    - NDPI_LOG_DBG
    - __get_master
    - ntohl
    linkageType: ''
    returnType: void
    signature: void ndpi_search_stun(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/stun.c:1283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1286
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1286
    functionName: get_signal_key
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached:
    - ndpi_quick_hash64
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t get_signal_key(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_signal_key
      Src: /src/ndpi/src/lib/protocols/stun.c:1297,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:1299,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:1301,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:1303,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1303,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1303,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:1308,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1308,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1314
      start: 1290
    functionDepth: 2
    functionLinenumber: 1290
    functionLinenumberEnd: 1314
    functionName: signal_search_into_cache
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 1
    functionsReached:
    - printf
    - ndpi_lru_find_cache
    - ntohs
    - get_signal_key
    - ndpi_get_current_time
    linkageType: ''
    returnType: int
    signature: "int signal_search_into_cache(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_signal_key
      Src: /src/ndpi/src/lib/protocols/stun.c:1324,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/stun.c:1326,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1326,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/stun.c:1326,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/stun.c:1328,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/stun.c:1329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1331
      start: 1318
    functionDepth: 2
    functionLinenumber: 1318
    functionLinenumberEnd: 1331
    functionName: signal_add_to_cache
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 0
    functionsReached:
    - ndpi_lru_add_to_cache
    - printf
    - ntohs
    - get_signal_key
    - ndpi_get_current_time
    linkageType: ''
    returnType: void
    signature: "void signal_add_to_cache(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                       struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/stun.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 1340
      start: 1335
    functionDepth: 3
    functionLinenumber: 1335
    functionLinenumberEnd: 1340
    functionName: init_stun_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/stun.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_stun_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/alicloud.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/alicloud.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: ndpi_int_alicloud_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/alicloud.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_alicloud_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                             struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/alicloud.c:43,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/alicloud.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/alicloud.c:51,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/alicloud.c:51,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/alicloud.c:53,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/alicloud.c:53,1
    - Dst: ndpi_int_alicloud_add_connection
      Src: /src/ndpi/src/lib/protocols/alicloud.c:57,1
    - Dst: ndpi_int_alicloud_add_connection
      Src: /src/ndpi/src/lib/protocols/alicloud.c:60,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/alicloud.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 69
    functionName: ndpi_search_alicloud
    functionSourceFile: /src/ndpi/src/lib/protocols/alicloud.c
    functionUses: 0
    functionsReached:
    - ndpi_int_alicloud_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_alicloud(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/alicloud.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: init_alicloud_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/alicloud.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_alicloud_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ntp.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ndpi_int_ntp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ntp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ntp_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t*ndpi_struct,
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ntp.c:42,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/ntp.c:44,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/ntp.c:44,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/ntp.c:46,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ntp.c:53,1
    - Dst: ndpi_int_ntp_add_connection
      Src: /src/ndpi/src/lib/protocols/ntp.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ntp.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: ndpi_search_ntp_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/ntp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_ntp_add_connection
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ntp_udp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ntp.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: init_ntp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ntp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ntp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: ndpi_int_gearup_booster_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/gearup_booster.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_gearup_booster_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                                   struct
      ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:43,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:45,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:45,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:47,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:55,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:63,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:63,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:65,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:71,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:71,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:78,1
    - Dst: ndpi_int_gearup_booster_add_connection
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:82,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 83
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 83
    functionName: ndpi_search_gearup_booster
    functionSourceFile: /src/ndpi/src/lib/protocols/gearup_booster.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_gearup_booster_add_connection
    - ntohl
    - get_u_int32_t
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_gearup_booster(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                       struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/gearup_booster.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: init_gearup_booster_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/gearup_booster.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_gearup_booster_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dcerpc.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ndpi_int_dcerpc_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/dcerpc.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_dcerpc_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \    *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: is_connection_oriented_dcerpc
    functionSourceFile: /src/ndpi/src/lib/protocols/dcerpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_connection_oriented_dcerpc(struct ndpi_packet_struct *packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 79
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 79
    functionName: is_connectionless_dcerpc
    functionSourceFile: /src/ndpi/src/lib/protocols/dcerpc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_connectionless_dcerpc(struct ndpi_packet_struct *packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dcerpc.c:85,1
    - Dst: is_connection_oriented_dcerpc
      Src: /src/ndpi/src/lib/protocols/dcerpc.c:86,1
    - Dst: is_connectionless_dcerpc
      Src: /src/ndpi/src/lib/protocols/dcerpc.c:86,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/dcerpc.c:87,1
    - Dst: ndpi_int_dcerpc_add_connection
      Src: /src/ndpi/src/lib/protocols/dcerpc.c:88,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dcerpc.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: ndpi_search_dcerpc
    functionSourceFile: /src/ndpi/src/lib/protocols/dcerpc.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_dcerpc_add_connection
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - is_connectionless_dcerpc
    - is_connection_oriented_dcerpc
    linkageType: ''
    returnType: void
    signature: void ndpi_search_dcerpc(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dcerpc.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: init_dcerpc_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dcerpc.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dcerpc_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/stomp.c:36,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/stomp.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: ndpi_int_stomp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/stomp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_stomp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                                struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/stomp.c:47,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/stomp.c:50,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/stomp.c:51,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/stomp.c:51,1
    - Dst: ndpi_int_stomp_add_connection
      Src: /src/ndpi/src/lib/protocols/stomp.c:53,1
    - Dst: current_pkt_from_server_to_client
      Src: /src/ndpi/src/lib/protocols/stomp.c:58,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/stomp.c:59,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/stomp.c:59,1
    - Dst: ndpi_int_stomp_add_connection
      Src: /src/ndpi/src/lib/protocols/stomp.c:61,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/stomp.c:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: ndpi_search_stomp
    functionSourceFile: /src/ndpi/src/lib/protocols/stomp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - current_pkt_from_server_to_client
    - NDPI_LOG_DBG
    - ndpi_int_stomp_add_connection
    - current_pkt_from_client_to_server
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_stomp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/stomp.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: init_stomp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/stomp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_stomp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/qq.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: ndpi_int_qq_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/qq.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_qq_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t       struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/qq.c:44,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/qq.c:46,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/qq.c:46,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/qq.c:47,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/qq.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/qq.c:48,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/qq.c:48,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/qq.c:49,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/qq.c:49,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/qq.c:50,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/qq.c:50,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/qq.c:51,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/qq.c:51,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/qq.c:52,1
    - Dst: ndpi_int_qq_add_connection
      Src: /src/ndpi/src/lib/protocols/qq.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/qq.c:56,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: ndpi_search_qq
    functionSourceFile: /src/ndpi/src/lib/protocols/qq.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - get_u_int32_t
    - ndpi_int_qq_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_qq(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/qq.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: init_qq_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/qq.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_qq_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mssql_tds.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: ndpi_int_mssql_tds_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/mssql_tds.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_mssql_tds_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \ *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mssql_tds.c:53,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/mssql_tds.c:60,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mssql_tds.c:61,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/mssql_tds.c:67,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mssql_tds.c:68,1
    - Dst: ndpi_int_mssql_tds_add_connection
      Src: /src/ndpi/src/lib/protocols/mssql_tds.c:69,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mssql_tds.c:75,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 76
    functionName: ndpi_search_mssql_tds
    functionSourceFile: /src/ndpi/src/lib/protocols/mssql_tds.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_int_mssql_tds_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_mssql_tds(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mssql_tds.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: init_mssql_tds_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mssql_tds.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mssql_tds_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/fix.c:36,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/fix.c:45,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/fix.c:46,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/fix.c:55,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/fix.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/fix.c:62,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 63
    functionName: ndpi_search_fix
    functionSourceFile: /src/ndpi/src/lib/protocols/fix.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_fix(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/fix.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: init_fix_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/fix.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_fix_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ldap.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: ndpi_int_ldap_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ldap.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ldap_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ldap.c:46,1
    - Dst: asn1_ber_decode_length
      Src: /src/ndpi/src/lib/protocols/ldap.c:50,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ldap.c:51,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ldap.c:58,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ldap.c:61,1
    - Dst: ndpi_int_ldap_add_connection
      Src: /src/ndpi/src/lib/protocols/ldap.c:62,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ldap.c:69,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 70
    functionName: ndpi_search_ldap
    functionSourceFile: /src/ndpi/src/lib/protocols/ldap.c
    functionUses: 0
    functionsReached:
    - ndpi_int_ldap_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - asn1_ber_decode_length
    linkageType: ''
    returnType: void
    signature: void ndpi_search_ldap(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ldap.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: init_ldap_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ldap.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ldap_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: ndpi_int_xdmcp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/xdmcp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_xdmcp_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \ *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:44,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:46,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:46,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:49,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:49,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:49,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:49,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:51,1
    - Dst: ndpi_int_xdmcp_add_connection
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:52,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:55,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:56,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:56,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:57,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:57,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:57,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:57,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:59,1
    - Dst: ndpi_int_xdmcp_add_connection
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:60,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:64,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 65
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 65
    functionName: ndpi_search_xdmcp
    functionSourceFile: /src/ndpi/src/lib/protocols/xdmcp.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_int_xdmcp_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_xdmcp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \     struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/xdmcp.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: init_xdmcp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/xdmcp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_xdmcp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:51,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - protocol
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: ndpi_int_mail_pop_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_pop.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_mail_pop_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \    *ndpi_struct, struct ndpi_flow_struct *flow,\n\t\t\t\t\t     u_int16_t
      protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:66,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:69,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:72,1
    - Dst: ndpi_user_pwd_payload_copy
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:75,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:79,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:81,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:85,1
    - Dst: ndpi_user_pwd_payload_copy
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:86,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:90,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:93,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:96,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:99,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:102,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:105,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:108,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:111,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 118
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 118
    functionName: ndpi_int_mail_pop_check_for_client_commands
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_pop.c
    functionUses: 0
    functionsReached:
    - ndpi_memcasecmp
    - snprintf
    - ndpi_user_pwd_payload_copy
    - ndpi_set_risk
    linkageType: ''
    returnType: int
    signature: "int ndpi_int_mail_pop_check_for_client_commands(struct ndpi_detection_module_struct\n\t\t\t\t\t\t
      \      *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:129,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:132,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:134,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:138,1
    - Dst: ndpi_int_mail_pop_add_connection
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:139,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:141,1
    - Dst: switch_extra_dissection_to_tls
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:144,1
    - Dst: ndpi_int_mail_pop_check_for_client_commands
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:150,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:154,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:154,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:162,1
    - Dst: ndpi_int_mail_pop_add_connection
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:171,1
    - Dst: popInitExtraPacketProcessing
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:173,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:182,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:190,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:190,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:193,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:198,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 199
      start: 122
    functionDepth: 6
    functionLinenumber: 122
    functionLinenumberEnd: 199
    functionName: ndpi_search_mail_pop_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_pop.c
    functionUses: 0
    functionsReached:
    - ndpi_int_mail_pop_check_for_client_commands
    - ntohs
    - NDPI_LOG_DBG2
    - get_u_int16_t
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_mail_pop_add_connection
    - ndpi_memcasecmp
    - switch_extra_dissection_to_tls
    - popInitExtraPacketProcessing
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_mail_pop_tcp(struct ndpi_detection_module_struct\n\t\t\t\t
      \    *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_mail_pop_tcp
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:208,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 217
      start: 204
    functionDepth: 7
    functionLinenumber: 204
    functionLinenumberEnd: 217
    functionName: ndpi_extra_search_mail_pop_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_pop.c
    functionUses: 0
    functionsReached:
    - ndpi_search_mail_pop_tcp
    - printf
    linkageType: ''
    returnType: int
    signature: "int ndpi_extra_search_mail_pop_tcp(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: popInitExtraPacketProcessing
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_pop.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void popInitExtraPacketProcessing(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mail_pop.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: init_mail_pop_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_pop.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mail_pop_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/postgres.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: ndpi_int_postgres_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/postgres.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_postgres_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \    *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/postgres.c:51,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/postgres.c:51,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/postgres.c:58,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/postgres.c:58,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/postgres.c:59,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/postgres.c:59,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/postgres.c:69,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/postgres.c:69,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/postgres.c:77,1
    - Dst: ndpi_int_postgres_add_connection
      Src: /src/ndpi/src/lib/protocols/postgres.c:78,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/postgres.c:83,1
    - Dst: ndpi_int_postgres_add_connection
      Src: /src/ndpi/src/lib/protocols/postgres.c:84,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/postgres.c:91,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/postgres.c:91,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/postgres.c:92,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/postgres.c:92,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/postgres.c:93,1
    - Dst: ndpi_int_postgres_add_connection
      Src: /src/ndpi/src/lib/protocols/postgres.c:94,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/postgres.c:98,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/postgres.c:98,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/postgres.c:99,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/postgres.c:99,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/postgres.c:100,1
    - Dst: ndpi_int_postgres_add_connection
      Src: /src/ndpi/src/lib/protocols/postgres.c:101,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/postgres.c:109,1
    - Dst: ndpi_int_postgres_add_connection
      Src: /src/ndpi/src/lib/protocols/postgres.c:110,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/postgres.c:115,1
    - Dst: ndpi_int_postgres_add_connection
      Src: /src/ndpi/src/lib/protocols/postgres.c:116,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/postgres.c:122,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 53
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 123
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 123
    functionName: ndpi_search_postgres_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/postgres.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_int_postgres_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_postgres_tcp(struct ndpi_detection_module_struct\n\t\t\t\t
      \    *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/postgres.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: init_postgres_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/postgres.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_postgres_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: ndpi_int_iso9506_1_mms_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/iso9506-1-mms.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_iso9506_1_mms_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                                struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:48,1
    - Dst: tpkt_verify_hdr
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:50,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:52,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:59,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:59,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:60,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:60,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:61,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:61,1
    - Dst: ndpi_int_iso9506_1_mms_add_connection
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:63,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:71,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 73
    functionName: ndpi_search_iso9506_1_mms
    functionSourceFile: /src/ndpi/src/lib/protocols/iso9506-1-mms.c
    functionUses: 0
    functionsReached:
    - tpkt_verify_hdr
    - le16toh
    - get_u_int16_t
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_iso9506_1_mms_add_connection
    - current_pkt_from_client_to_server
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_iso9506_1_mms(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/iso9506-1-mms.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: init_iso9506_1_mms_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/iso9506-1-mms.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_iso9506_1_mms_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/rsync.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: ndpi_int_rsync_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/rsync.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_rsync_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \ *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rsync.c:39,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/rsync.c:42,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/rsync.c:51,1
    - Dst: ndpi_int_rsync_add_connection
      Src: /src/ndpi/src/lib/protocols/rsync.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rsync.c:57,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 58
    functionName: ndpi_search_rsync
    functionSourceFile: /src/ndpi/src/lib/protocols/rsync.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG2
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_int_rsync_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_rsync(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/rsync.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: init_rsync_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/rsync.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_rsync_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/bfcp.c:39,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bfcp.c:63,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/bfcp.c:63,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bfcp.c:68,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/bfcp.c:69,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/bfcp.c:72,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/bfcp.c:72,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bfcp.c:73,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/bfcp.c:73,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bfcp.c:77,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 78
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 78
    functionName: ndpi_search_bfcp
    functionSourceFile: /src/ndpi/src/lib/protocols/bfcp.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_bfcp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/bfcp.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: init_bfcp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/bfcp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_bfcp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/threema.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/threema.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: ndpi_int_threema_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/threema.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_threema_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                            struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/threema.c:43,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/threema.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/threema.c:45,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/threema.c:46,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/threema.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/threema.c:61,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/threema.c:67,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/threema.c:78,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/threema.c:85,1
    - Dst: ndpi_int_threema_add_connection
      Src: /src/ndpi/src/lib/protocols/threema.c:89,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 90
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 90
    functionName: ndpi_search_threema
    functionSourceFile: /src/ndpi/src/lib/protocols/threema.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_threema_add_connection
    - NDPI_LOG_DBG
    - ntohs
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_threema(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/threema.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: init_threema_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/threema.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_threema_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mpegts.c:33,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mpegts.c:45,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mpegts.c:46,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mpegts.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 52
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 52
    functionName: ndpi_search_mpegts
    functionSourceFile: /src/ndpi/src/lib/protocols/mpegts.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_mpegts(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mpegts.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: init_mpegts_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mpegts.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mpegts_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: kcp_header
    functionSourceFile: /src/ndpi/src/lib/protocols/kcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON kcp_header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/kcp.c:52,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/kcp.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: ndpi_int_kcp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/kcp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_kcp_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                        struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/kcp.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kcp.c:69,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kcp.c:81,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/kcp.c:88,1
    - Dst: ndpi_int_kcp_add_connection
      Src: /src/ndpi/src/lib/protocols/kcp.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 93
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 93
    functionName: ndpi_search_kcp
    functionSourceFile: /src/ndpi/src/lib/protocols/kcp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_int_kcp_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_kcp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/kcp.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: init_kcp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/kcp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_kcp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - service_id
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: is_valid_knxnet_ip_service_id
    functionSourceFile: /src/ndpi/src/lib/protocols/knxnet_ip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_valid_knxnet_ip_service_id(u_int16_t service_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:70,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: ndpi_int_knxnet_ip_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/knxnet_ip.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_knxnet_ip_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:79,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:87,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:87,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:88,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:88,1
    - Dst: is_valid_knxnet_ip_service_id
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:90,1
    - Dst: ndpi_int_knxnet_ip_add_connection
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:97,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:109,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:109,1
    - Dst: is_valid_knxnet_ip_service_id
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:110,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:110,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:110,1
    - Dst: ndpi_int_knxnet_ip_add_connection
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:112,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:118,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 119
      start: 74
    functionDepth: 6
    functionLinenumber: 74
    functionLinenumberEnd: 119
    functionName: ndpi_search_knxnet_ip
    functionSourceFile: /src/ndpi/src/lib/protocols/knxnet_ip.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - is_valid_knxnet_ip_service_id
    - ndpi_int_knxnet_ip_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_knxnet_ip(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/knxnet_ip.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: init_knxnet_ip_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/knxnet_ip.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_knxnet_ip_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: ams_tcp_hdr
    functionSourceFile: /src/ndpi/src/lib/protocols/beckhoff_ads.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ams_tcp_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:64,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: ndpi_int_beckhoff_ads_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/beckhoff_ads.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_beckhoff_ads_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                                 struct
      ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:76,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:83,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:91,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:94,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:95,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:100,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:101,1
    - Dst: ndpi_int_beckhoff_ads_add_connection
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:106,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 113
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 113
    functionName: ndpi_search_beckhoff_ads
    functionSourceFile: /src/ndpi/src/lib/protocols/beckhoff_ads.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - le16toh
    - NDPI_LOG_DBG
    - le32toh
    - ndpi_int_beckhoff_ads_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_beckhoff_ads(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                     struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/beckhoff_ads.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: init_beckhoff_ads_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/beckhoff_ads.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_beckhoff_ads_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/tcp_udp.c:36,1
    - Dst: ndpi_network_ptree_match
      Src: /src/ndpi/src/lib/protocols/tcp_udp.c:37,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/tcp_udp.c:40,1
    - Dst: ndpi_network_ptree_match
      Src: /src/ndpi/src/lib/protocols/tcp_udp.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - saddr
    - daddr
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: ndpi_search_tcp_or_udp_raw
    functionSourceFile: /src/ndpi/src/lib/protocols/tcp_udp.c
    functionUses: 1
    functionsReached:
    - ndpi_network_ptree_match
    - htonl
    linkageType: ''
    returnType: u_int
    signature: "u_int ndpi_search_tcp_or_udp_raw(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t struct ndpi_flow_struct *flow,\n\t\t\t\t u_int32_t saddr,
      u_int32_t daddr)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_tcp_or_udp_raw
      Src: /src/ndpi/src/lib/protocols/tcp_udp.c:56,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tcp_udp.c:58,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tcp_udp.c:59,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tcp_udp.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: ndpi_search_tcp_or_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/tcp_udp.c
    functionUses: 0
    functionsReached:
    - ntohl
    - ndpi_search_tcp_or_udp_raw
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_search_tcp_or_udp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: ndpi_int_sd_rtn_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/sd_rtn.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_sd_rtn_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                           struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:42,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:42,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - flow
    - payload
    - payload_len
    argTypes:
    - struct ndpi_flow_struct*
    - u_int8_t*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: ndpi_int_sd_rtn_dissect_sni
    functionSourceFile: /src/ndpi/src/lib/protocols/sd_rtn.c
    functionUses: 0
    functionsReached:
    - get_u_int16_t
    - ntohs
    - ndpi_hostname_sni_set
    linkageType: ''
    returnType: int
    signature: "int ndpi_int_sd_rtn_dissect_sni(struct ndpi_flow_struct * const flow,\n
      \                                      u_int8_t const * const payload,\n                                       u_int32_t
      payload_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:64,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:70,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:70,1
    - Dst: ndpi_int_sd_rtn_add_connection
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:77,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: ndpi_search_sd_rtn
    functionSourceFile: /src/ndpi/src/lib/protocols/sd_rtn.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_sd_rtn_add_connection
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_sd_rtn(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/sd_rtn.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: init_sd_rtn_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/sd_rtn.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_sd_rtn_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - dns_type
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 99
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 99
    functionName: ndpi_check_dns_type
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    linkageType: ''
    returnType: void
    signature: "void ndpi_check_dns_type(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow,\n\t\t\t\tu_int16_t
      dns_type)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - port
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: checkPort
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t checkPort(u_int16_t port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:120,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:121,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:122,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:123,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: isMDNSMulticastAddress
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: int
    signature: int isMDNSMulticastAddress(struct ndpi_packet_struct * const packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:129,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:130,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:131,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:132,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - packet
    argTypes:
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: isLLMNRMulticastAddress
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: int
    signature: int isLLMNRMulticastAddress(struct ndpi_packet_struct *const packet)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checkPort
      Src: /src/ndpi/src/lib/protocols/dns.c:139,1
    - Dst: checkPort
      Src: /src/ndpi/src/lib/protocols/dns.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sport
    - dport
    argTypes:
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: checkDNSSubprotocol
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - checkPort
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t checkDNSSubprotocol(u_int16_t sport, u_int16_t dport)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - payload
    argTypes:
    - u_int*
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: get16
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: u_int16_t
    signature: u_int16_t get16(u_int *i, const u_int8_t *payload)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNameLength
      Src: /src/ndpi/src/lib/protocols/dns.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - i
    - payload
    - payloadLen
    argTypes:
    - u_int
    - u_int8_t*
    - u_int
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: getNameLength
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 1
    functionsReached:
    - getNameLength
    linkageType: ''
    returnType: u_int
    signature: u_int getNameLength(u_int i, const u_int8_t *payload, u_int payloadLen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/dns.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 3
    argNames:
    - error_code
    - buf
    - buf_len
    argTypes:
    - u_int16_t
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 209
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 209
    functionName: dns_error_code2string
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * dns_error_code2string(u_int16_t error_code, char *buf, u_int
      buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/dns.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: fpc_dns_cache_key_from_flow
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 1
    functionsReached:
    - ndpi_quick_hash64
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t fpc_dns_cache_key_from_flow(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/dns.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ip
    - ip_len
    argTypes:
    - unsigned char*
    - int
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: fpc_dns_cache_key_from_packet
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - ndpi_quick_hash64
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t fpc_dns_cache_key_from_packet(const unsigned char *ip, int
      ip_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/ndpi/src/lib/protocols/dns.c:269,1
    - Dst: tolower
      Src: /src/ndpi/src/lib/protocols/dns.c:276,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/protocols/dns.c:282,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 6
    argNames:
    - packet
    - 'off'
    - _hostname
    - max_len
    - _hostname_len
    - ignore_checks
    argTypes:
    - struct ndpi_packet_struct*
    - u_int*
    - char*
    - u_int
    - u_int*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 297
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 297
    functionName: ndpi_grab_dns_name
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - ndpi_isprint
    - tolower
    linkageType: ''
    returnType: u_int8_t
    signature: "u_int8_t ndpi_grab_dns_name(struct ndpi_packet_struct *packet,\n\t\t\t\t
      \  u_int *off /* payload offset */,\n\t\t\t\t   char *_hostname, u_int max_len,\n\t\t\t\t
      \  u_int *_hostname_len,\n\t\t\t\t   u_int8_t ignore_checks)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNameLength
      Src: /src/ndpi/src/lib/protocols/dns.c:313,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:320,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:323,1
    - Dst: get16
      Src: /src/ndpi/src/lib/protocols/dns.c:327,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - dns_header
    - payload_offset
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct ndpi_dns_packet_header*
    - u_int
    constantsTouched: []
    func_position:
      end: 342
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 342
    functionName: process_queries
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - getNameLength
    - ndpi_set_risk
    - get16
    - printf
    linkageType: ''
    returnType: int
    signature: "int process_queries(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                          struct ndpi_flow_struct *flow,\n                           struct
      ndpi_dns_packet_header *dns_header,\n                           u_int payload_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNameLength
      Src: /src/ndpi/src/lib/protocols/dns.c:362,1
    - Dst: get16
      Src: /src/ndpi/src/lib/protocols/dns.c:372,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:373,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:376,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:379,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:380,1
    - Dst: ndpi_check_dns_type
      Src: /src/ndpi/src/lib/protocols/dns.c:384,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dns.c:390,1
    - Dst: get16
      Src: /src/ndpi/src/lib/protocols/dns.c:393,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:397,1
    - Dst: ndpi_grab_dns_name
      Src: /src/ndpi/src/lib/protocols/dns.c:410,1
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/dns.c:427,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/dns.c:429,1
    - Dst: ndpi_cache_address
      Src: /src/ndpi/src/lib/protocols/dns.c:434,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/dns.c:452,1
    - Dst: fpc_dns_cache_key_from_packet
      Src: /src/ndpi/src/lib/protocols/dns.c:453,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/dns.c:455,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dns.c:457,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 65
    argCount: 5
    argNames:
    - ndpi_struct
    - flow
    - dns_header
    - payload_offset
    - proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct ndpi_dns_packet_header*
    - u_int
    - ndpi_master_app_protocol*
    constantsTouched: []
    func_position:
      end: 478
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 478
    functionName: process_answers
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - memset
    - ndpi_cache_address
    - memcpy
    - printf
    - ndpi_grab_dns_name
    - ndpi_check_dns_type
    - getNameLength
    - ndpi_lru_add_to_cache
    - fpc_dns_cache_key_from_packet
    - get16
    - NDPI_LOG_DBG
    - ntohl
    - ndpi_get_current_time
    linkageType: ''
    returnType: int
    signature: "int process_answers(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                          struct ndpi_flow_struct *flow,\n                           struct
      ndpi_dns_packet_header *dns_header,\n                           u_int payload_offset,\n
      \                          ndpi_master_app_protocol *proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getNameLength
      Src: /src/ndpi/src/lib/protocols/dns.c:513,1
    - Dst: get16
      Src: /src/ndpi/src/lib/protocols/dns.c:525,1
    - Dst: get16
      Src: /src/ndpi/src/lib/protocols/dns.c:527,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:531,1
    - Dst: get16
      Src: /src/ndpi/src/lib/protocols/dns.c:537,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:554,1
    - Dst: getNameLength
      Src: /src/ndpi/src/lib/protocols/dns.c:561,1
    - Dst: get16
      Src: /src/ndpi/src/lib/protocols/dns.c:570,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:573,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:578,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:581,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:585,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:587,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:591,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:592,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:600,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/dns.c:602,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:604,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/dns.c:606,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/dns.c:607,1
    - Dst: getNameLength
      Src: /src/ndpi/src/lib/protocols/dns.c:616,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - dns_header
    - payload_offset
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct ndpi_dns_packet_header*
    - u_int
    constantsTouched: []
    func_position:
      end: 624
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 624
    functionName: process_additionals
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - memcpy
    - printf
    - ntohs
    - ndpi_min
    - getNameLength
    - memcmp
    - get16
    linkageType: ''
    returnType: int
    signature: "int process_additionals(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow,\n                               struct
      ndpi_dns_packet_header *dns_header,\n                               u_int payload_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/dns.c:635,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:638,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:639,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:640,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:641,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:642,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:643,1
    - Dst: checkDNSSubprotocol
      Src: /src/ndpi/src/lib/protocols/dns.c:662,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:662,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:662,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 26
    argCount: 5
    argNames:
    - ndpi_struct
    - flow
    - dns_header
    - payload_offset
    - is_query
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct ndpi_dns_packet_header*
    - u_int
    - u_int8_t*
    constantsTouched: []
    func_position:
      end: 678
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 678
    functionName: is_valid_dns
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - checkDNSSubprotocol
    - memcpy
    - ntohs
    linkageType: ''
    returnType: int
    signature: "int is_valid_dns(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\tstruct
      ndpi_flow_struct *flow,\n\t\t\tstruct ndpi_dns_packet_header *dns_header,\n\t\t\tu_int
      payload_offset, u_int8_t *is_query)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 687
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 687
    functionName: keep_extra_dissection
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int keep_extra_dissection(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/dns.c:695,1
    - Dst: search_dns
      Src: /src/ndpi/src/lib/protocols/dns.c:698,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/dns.c:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 701
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 701
    functionName: search_dns_again
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - search_dns
    - keep_extra_dissection
    linkageType: ''
    returnType: int
    signature: int search_dns_again(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checkDNSSubprotocol
      Src: /src/ndpi/src/lib/protocols/dns.c:715,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:715,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:715,1
    - Dst: ndpi_grab_dns_name
      Src: /src/ndpi/src/lib/protocols/dns.c:727,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:730,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/dns.c:733,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:736,1
    - Dst: strstr
      Src: /src/ndpi/src/lib/protocols/dns.c:739,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/dns.c:740,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/dns.c:751,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/dns.c:752,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/dns.c:753,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/dns.c:754,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/dns.c:755,1
    - Dst: ends_with
      Src: /src/ndpi/src/lib/protocols/dns.c:756,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:760,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/dns.c:765,1
    - Dst: ndpi_match_host_subprotocol
      Src: /src/ndpi/src/lib/protocols/dns.c:769,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/dns.c:771,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/src/lib/protocols/dns.c:776,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - dns_header
    - proto
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - struct ndpi_dns_packet_header*
    - ndpi_master_app_protocol*
    constantsTouched: []
    func_position:
      end: 780
      start: 705
    functionDepth: 5
    functionLinenumber: 705
    functionLinenumberEnd: 780
    functionName: process_hostname
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_hostname_sni_set
    - printf
    - ntohs
    - ndpi_grab_dns_name
    - ndpi_check_dga_name
    - checkDNSSubprotocol
    - ndpi_match_host_subprotocol
    - strstr
    - ends_with
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: "int process_hostname(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow,\n                            struct
      ndpi_dns_packet_header *dns_header,\n                            ndpi_master_app_protocol
      *proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_dns
      Src: /src/ndpi/src/lib/protocols/dns.c:797,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:799,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dns.c:802,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:804,1
    - Dst: process_hostname
      Src: /src/ndpi/src/lib/protocols/dns.c:809,1
    - Dst: process_queries
      Src: /src/ndpi/src/lib/protocols/dns.c:817,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:820,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/dns.c:830,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/dns.c:833,1
    - Dst: dns_error_code2string
      Src: /src/ndpi/src/lib/protocols/dns.c:834,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:835,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:837,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:840,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:841,1
    - Dst: process_queries
      Src: /src/ndpi/src/lib/protocols/dns.c:845,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:848,1
    - Dst: process_answers
      Src: /src/ndpi/src/lib/protocols/dns.c:852,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:855,1
    - Dst: process_additionals
      Src: /src/ndpi/src/lib/protocols/dns.c:859,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/dns.c:862,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/dns.c:872,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/dns.c:875,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:876,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:878,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/dns.c:882,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dns.c:889,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dns.c:891,1
    - Dst: keep_extra_dissection
      Src: /src/ndpi/src/lib/protocols/dns.c:901,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dns.c:902,1
    - Dst: iph_is_valid_and_not_fragmented
      Src: /src/ndpi/src/lib/protocols/dns.c:919,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:920,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/dns.c:927,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 92
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 931
      start: 782
    functionDepth: 6
    functionLinenumber: 782
    functionLinenumberEnd: 931
    functionName: search_dns
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 1
    functionsReached:
    - ndpi_set_risk
    - process_hostname
    - process_additionals
    - printf
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG2
    - keep_extra_dissection
    - ndpi_isset_risk
    - NDPI_LOG_DBG
    - iph_is_valid_and_not_fragmented
    - dns_error_code2string
    - is_flowrisk_info_enabled
    - process_answers
    - ndpi_set_detected_protocol
    - snprintf
    - is_valid_dns
    - process_queries
    linkageType: ''
    returnType: void
    signature: void search_dns(struct ndpi_detection_module_struct *ndpi_struct, struct
      ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dns.c:940,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:943,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:944,1
    - Dst: isMDNSMulticastAddress
      Src: /src/ndpi/src/lib/protocols/dns.c:948,1
    - Dst: isLLMNRMulticastAddress
      Src: /src/ndpi/src/lib/protocols/dns.c:949,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:952,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/dns.c:952,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:953,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/dns.c:953,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dns.c:955,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:960,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/dns.c:961,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dns.c:969,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dns.c:979,1
    - Dst: search_dns
      Src: /src/ndpi/src/lib/protocols/dns.c:983,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 984
      start: 935
    functionDepth: 7
    functionLinenumber: 935
    functionLinenumberEnd: 984
    functionName: ndpi_search_dns
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 0
    functionsReached:
    - search_dns
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - isMDNSMulticastAddress
    - get_u_int16_t
    - isLLMNRMulticastAddress
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_dns(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dns.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 993
      start: 988
    functionDepth: 3
    functionLinenumber: 988
    functionLinenumberEnd: 993
    functionName: init_dns_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dns.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dns_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/websocket.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 5
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: set_websocket_detected
    functionSourceFile: /src/ndpi/src/lib/protocols/websocket.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void set_websocket_detected(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/websocket.c:66,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/websocket.c:77,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/websocket.c:78,1
    - Dst: set_websocket_detected
      Src: /src/ndpi/src/lib/protocols/websocket.c:88,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/websocket.c:91,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/websocket.c:92,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 95
      start: 60
    functionDepth: 6
    functionLinenumber: 60
    functionLinenumberEnd: 95
    functionName: ndpi_check_websocket
    functionSourceFile: /src/ndpi/src/lib/protocols/websocket.c
    functionUses: 0
    functionsReached:
    - set_websocket_detected
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: void ndpi_check_websocket(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/websocket.c:102,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/websocket.c:106,1
    - Dst: ndpi_check_websocket
      Src: /src/ndpi/src/lib/protocols/websocket.c:107,1
    - Dst: NDPI_PARSE_PACKET_LINE_INFO
      Src: /src/ndpi/src/lib/protocols/websocket.c:116,1
    - Dst: LINE_STARTS
      Src: /src/ndpi/src/lib/protocols/websocket.c:118,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/websocket.c:119,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/websocket.c:121,1
    - Dst: LINE_STARTS
      Src: /src/ndpi/src/lib/protocols/websocket.c:123,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/websocket.c:124,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/src/lib/protocols/websocket.c:126,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/websocket.c:129,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/websocket.c:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 142
      start: 97
    functionDepth: 7
    functionLinenumber: 97
    functionLinenumberEnd: 142
    functionName: ndpi_search_websocket
    functionSourceFile: /src/ndpi/src/lib/protocols/websocket.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_check_websocket
    - NDPI_PARSE_PACKET_LINE_INFO
    - NDPI_LOG_DBG
    - LINE_STARTS
    - ndpi_set_detected_protocol
    - LINE_ENDS
    - ndpi_strncasestr
    linkageType: ''
    returnType: void
    signature: void ndpi_search_websocket(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/websocket.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: init_websocket_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/websocket.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_websocket_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/blizzard.c:37,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/blizzard.c:41,1
    - Dst: current_pkt_from_server_to_client
      Src: /src/ndpi/src/lib/protocols/blizzard.c:43,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/blizzard.c:46,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/blizzard.c:47,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/blizzard.c:56,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/blizzard.c:57,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/blizzard.c:58,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/blizzard.c:63,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/blizzard.c:64,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/blizzard.c:64,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/blizzard.c:65,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/blizzard.c:68,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/blizzard.c:73,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/blizzard.c:74,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/blizzard.c:74,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/blizzard.c:75,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/blizzard.c:76,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/blizzard.c:76,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/blizzard.c:77,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/blizzard.c:78,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/blizzard.c:84,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 85
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 85
    functionName: search_blizzard_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/blizzard.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - current_pkt_from_server_to_client
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - le32toh
    - htons
    linkageType: ''
    returnType: void
    signature: void search_blizzard_tcp(struct ndpi_detection_module_struct* ndpi_struct,
      struct ndpi_flow_struct* flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/blizzard.c:91,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/blizzard.c:98,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/blizzard.c:102,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/blizzard.c:103,1
    - Dst: ndpi_match_strprefix
      Src: /src/ndpi/src/lib/protocols/blizzard.c:108,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/blizzard.c:109,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/blizzard.c:110,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/blizzard.c:119,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/blizzard.c:120,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/blizzard.c:127,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/blizzard.c:128,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/blizzard.c:134,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 135
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 135
    functionName: search_blizzard_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/blizzard.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_match_strprefix
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - le32toh
    linkageType: ''
    returnType: void
    signature: void search_blizzard_udp(struct ndpi_detection_module_struct* ndpi_struct,
      struct ndpi_flow_struct* flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: search_blizzard_tcp
      Src: /src/ndpi/src/lib/protocols/blizzard.c:140,1
    - Dst: search_blizzard_udp
      Src: /src/ndpi/src/lib/protocols/blizzard.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 6
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: ndpi_search_blizzard
    functionSourceFile: /src/ndpi/src/lib/protocols/blizzard.c
    functionUses: 0
    functionsReached:
    - search_blizzard_udp
    - search_blizzard_tcp
    linkageType: ''
    returnType: void
    signature: void ndpi_search_blizzard(struct ndpi_detection_module_struct* ndpi_struct,
      struct ndpi_flow_struct* flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/blizzard.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: init_blizzard_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/blizzard.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_blizzard_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/hpvirtgrp.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: ndpi_int_hpvirtgrp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/hpvirtgrp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_hpvirtgrp_add_connection(\n                struct ndpi_detection_module_struct
      *ndpi_struct,\n                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/hpvirtgrp.c:41,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/hpvirtgrp.c:46,1
    - Dst: ndpi_int_hpvirtgrp_add_connection
      Src: /src/ndpi/src/lib/protocols/hpvirtgrp.c:49,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/hpvirtgrp.c:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: ndpi_search_hpvirtgrp
    functionSourceFile: /src/ndpi/src/lib/protocols/hpvirtgrp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_hpvirtgrp_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohs
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_hpvirtgrp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/hpvirtgrp.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: init_hpvirtgrp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/hpvirtgrp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_hpvirtgrp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/git.c:36,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/git.c:39,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/git.c:40,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/git.c:50,1
    - Dst: sscanf
      Src: /src/ndpi/src/lib/protocols/git.c:51,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/git.c:64,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/git.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/git.c:71,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 72
    functionName: ndpi_search_git
    functionSourceFile: /src/ndpi/src/lib/protocols/git.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - sscanf
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_git(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/git.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: init_git_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/git.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_git_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - protocol
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: ndpi_int_mail_imap_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_imap.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_mail_imap_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow,\n\t\t\t\t\t      u_int16_t protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:57,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:60,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:63,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:63,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:65,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:66,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:111,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:112,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:114,1
    - Dst: ndpi_int_mail_imap_add_connection
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:115,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:117,1
    - Dst: switch_extra_dissection_to_tls
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:120,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:125,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:126,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:128,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:129,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:136,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:137,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:142,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:143,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:149,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:153,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:155,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:157,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:161,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:165,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:167,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:169,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:171,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:177,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:179,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:180,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:182,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:183,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:185,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:186,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:188,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:189,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:194,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:195,1
    - Dst: ndpi_int_mail_imap_add_connection
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:198,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:203,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:204,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:209,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:210,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:212,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:213,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:215,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:216,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:218,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:219,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:224,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:225,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:227,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:228,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:230,1
    - Dst: SAFE_INC_IMAP_STAGE
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:231,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:245,1
    - Dst: ndpi_int_mail_imap_add_connection
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:246,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:255,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:265,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:265,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:267,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:272,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 185
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 273
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 273
    functionName: ndpi_search_mail_imap_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_imap.c
    functionUses: 0
    functionsReached:
    - SAFE_INC_IMAP_STAGE
    - ndpi_set_risk
    - printf
    - ntohs
    - NDPI_LOG_DBG2
    - get_u_int16_t
    - ndpi_min
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_strlcpy
    - NDPI_LOG_INFO
    - snprintf
    - ndpi_memcasecmp
    - switch_extra_dissection_to_tls
    - ndpi_snprintf
    - ndpi_int_mail_imap_add_connection
    - strtok_r
    linkageType: ''
    returnType: void
    signature: void ndpi_search_mail_imap_tcp(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mail_imap.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: init_mail_imap_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mail_imap.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mail_imap_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: ndpi_int_toca_boca_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/tocaboca.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_toca_boca_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                              struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:42,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:47,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:48,1
    - Dst: ndpi_int_toca_boca_add_connection
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:50,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:56,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:56,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:57,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:57,1
    - Dst: ndpi_int_toca_boca_add_connection
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:59,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:64,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:64,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:65,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:65,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:66,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:66,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:67,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:67,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:68,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:68,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:69,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:69,1
    - Dst: ndpi_int_toca_boca_add_connection
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:71,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:76,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 77
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 77
    functionName: ndpi_search_toca_boca
    functionSourceFile: /src/ndpi/src/lib/protocols/tocaboca.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - ndpi_int_toca_boca_add_connection
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_toca_boca(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/tocaboca.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: init_toca_boca_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/tocaboca.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_toca_boca_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:37,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:41,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:41,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:42,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:42,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:43,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:43,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:45,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:46,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:58,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:58,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:59,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:59,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:60,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:60,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:61,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:61,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:63,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:69,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 70
    functionName: ndpi_search_pathofexile
    functionSourceFile: /src/ndpi/src/lib/protocols/path_of_exile.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_set_detected_protocol
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_pathofexile(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/path_of_exile.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: init_pathofexile_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/path_of_exile.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_pathofexile_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/collectd.c:64,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/collectd.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: ndpi_int_collectd_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/collectd.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_collectd_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                             struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/collectd.c:79,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/collectd.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - packet
    - block_offset
    argTypes:
    - struct ndpi_packet_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 87
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 87
    functionName: npdi_int_collectd_block_size
    functionSourceFile: /src/ndpi/src/lib/protocols/collectd.c
    functionUses: 0
    functionsReached:
    - get_u_int16_t
    - ntohs
    linkageType: ''
    returnType: u_int16_t
    signature: "u_int16_t npdi_int_collectd_block_size(struct ndpi_packet_struct const
      * const packet,\n                                              u_int16_t const
      block_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - block_type
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 102
    functionName: ndpi_int_collectd_check_type
    functionSourceFile: /src/ndpi/src/lib/protocols/collectd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_int_collectd_check_type(u_int16_t block_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/collectd.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - flow
    - packet
    - block_length
    argTypes:
    - struct ndpi_flow_struct*
    - struct ndpi_packet_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: ndpi_int_collectd_dissect_hostname
    functionSourceFile: /src/ndpi/src/lib/protocols/collectd.c
    functionUses: 0
    functionsReached:
    - ndpi_hostname_sni_set
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_collectd_dissect_hostname(struct ndpi_flow_struct *
      const flow,\n                                               struct ndpi_packet_struct
      const * const packet,\n                                               u_int16_t
      block_length)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/collectd.c:114,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/collectd.c:114,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/collectd.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - flow
    - packet
    argTypes:
    - struct ndpi_flow_struct*
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: ndpi_int_collectd_dissect_username
    functionSourceFile: /src/ndpi/src/lib/protocols/collectd.c
    functionUses: 0
    functionsReached:
    - get_u_int16_t
    - memcpy
    - ntohs
    linkageType: ''
    returnType: int
    signature: "int ndpi_int_collectd_dissect_username(struct ndpi_flow_struct * const
      flow,\n                                              struct ndpi_packet_struct
      const * const packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/collectd.c:138,1
    - Dst: npdi_int_collectd_block_size
      Src: /src/ndpi/src/lib/protocols/collectd.c:143,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/collectd.c:149,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/collectd.c:149,1
    - Dst: ndpi_int_collectd_check_type
      Src: /src/ndpi/src/lib/protocols/collectd.c:150,1
    - Dst: ndpi_int_collectd_dissect_username
      Src: /src/ndpi/src/lib/protocols/collectd.c:170,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/collectd.c:172,1
    - Dst: ndpi_int_collectd_add_connection
      Src: /src/ndpi/src/lib/protocols/collectd.c:174,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/collectd.c:183,1
    - Dst: ndpi_int_collectd_dissect_hostname
      Src: /src/ndpi/src/lib/protocols/collectd.c:188,1
    - Dst: ndpi_int_collectd_add_connection
      Src: /src/ndpi/src/lib/protocols/collectd.c:190,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 191
      start: 130
    functionDepth: 6
    functionLinenumber: 130
    functionLinenumberEnd: 191
    functionName: ndpi_search_collectd
    functionSourceFile: /src/ndpi/src/lib/protocols/collectd.c
    functionUses: 0
    functionsReached:
    - ndpi_int_collectd_add_connection
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - ndpi_int_collectd_dissect_hostname
    - NDPI_LOG_DBG
    - npdi_int_collectd_block_size
    - ndpi_int_collectd_dissect_username
    - ndpi_int_collectd_check_type
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_collectd(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/collectd.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: init_collectd_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/collectd.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_collectd_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: is_printable_char
    functionSourceFile: /src/ndpi/src/lib/protocols/netbios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_printable_char(unsigned char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - u_char
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: is_stop_char
    functionSourceFile: /src/ndpi/src/lib/protocols/netbios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_stop_char(u_char c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_stop_char
      Src: /src/ndpi/src/lib/protocols/netbios.c:67,1
    - Dst: is_stop_char
      Src: /src/ndpi/src/lib/protocols/netbios.c:67,1
    - Dst: is_printable_char
      Src: /src/ndpi/src/lib/protocols/netbios.c:75,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 4
    argNames:
    - in
    - in_len
    - out
    - out_len
    argTypes:
    - u_char*
    - u_int
    - u_char*
    - u_int
    constantsTouched: []
    func_position:
      end: 91
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 91
    functionName: ndpi_netbios_name_interpret
    functionSourceFile: /src/ndpi/src/lib/protocols/netbios.c
    functionUses: 0
    functionsReached:
    - is_printable_char
    - is_stop_char
    linkageType: ''
    returnType: int
    signature: int ndpi_netbios_name_interpret(u_char *in, u_int in_len, u_char *out,
      u_int out_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_netbios_name_interpret
      Src: /src/ndpi/src/lib/protocols/netbios.c:104,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/netbios.c:106,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/netbios.c:106,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/src/lib/protocols/netbios.c:108,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/netbios.c:112,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/netbios.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - sub_protocol
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 115
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 115
    functionName: ndpi_int_netbios_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/netbios.c
    functionUses: 0
    functionsReached:
    - ndpi_hostname_sni_set
    - ndpi_check_dga_name
    - ndpi_netbios_name_interpret
    - ndpi_set_detected_protocol
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_netbios_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t    struct ndpi_flow_struct *flow,\n\t\t\t\t\t    u_int16_t
      sub_protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/netbios.c:124,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:127,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/netbios.c:133,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:134,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:134,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:135,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:135,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:136,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:136,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/netbios.c:138,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:145,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:147,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:156,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:158,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:167,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:169,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:178,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:180,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:189,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:192,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:201,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:204,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:213,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:216,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:225,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:228,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:237,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:240,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:245,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:247,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:247,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:248,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:249,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:249,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:254,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:259,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:264,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:264,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:265,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:265,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:267,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:269,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:275,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:278,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:279,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:279,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:280,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:280,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:285,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:290,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:295,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:295,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:296,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:296,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:298,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:300,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:304,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:305,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:306,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:306,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:311,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:316,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:321,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:321,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:322,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:322,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:324,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:326,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:330,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:331,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:332,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:332,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:332,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:332,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:337,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:342,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:347,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:347,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:348,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/netbios.c:348,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:350,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:352,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:366,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:366,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:369,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/netbios.c:373,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:373,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:375,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/netbios.c:377,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:380,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:382,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:391,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:395,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/netbios.c:399,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/netbios.c:401,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netbios.c:401,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netbios.c:402,1
    - Dst: ndpi_int_netbios_add_connection
      Src: /src/ndpi/src/lib/protocols/netbios.c:405,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/netbios.c:413,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 133
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 414
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 414
    functionName: ndpi_search_netbios
    functionSourceFile: /src/ndpi/src/lib/protocols/netbios.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ntohs
    - NDPI_LOG_DBG2
    - get_u_int16_t
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - ndpi_int_netbios_add_connection
    - get_u_int32_t
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_netbios(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\tstruct
      ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/netbios.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: init_netbios_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/netbios.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_netbios_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/xbox.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: ndpi_int_xbox_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/xbox.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_xbox_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xbox.c:47,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xbox.c:48,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/xbox.c:50,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/xbox.c:53,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/xbox.c:54,1
    - Dst: ndpi_int_xbox_add_connection
      Src: /src/ndpi/src/lib/protocols/xbox.c:62,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/xbox.c:63,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/xbox.c:70,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/xbox.c:70,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/xbox.c:72,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/xbox.c:72,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/xbox.c:73,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/xbox.c:73,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/xbox.c:74,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/xbox.c:74,1
    - Dst: ndpi_int_xbox_add_connection
      Src: /src/ndpi/src/lib/protocols/xbox.c:76,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/xbox.c:77,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/xbox.c:80,1
    - Dst: ndpi_int_xbox_add_connection
      Src: /src/ndpi/src/lib/protocols/xbox.c:89,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/xbox.c:90,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/xbox.c:97,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 27
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 98
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 98
    functionName: ndpi_search_xbox
    functionSourceFile: /src/ndpi/src/lib/protocols/xbox.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - memcmp
    - ndpi_int_xbox_add_connection
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_xbox(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/xbox.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: init_xbox_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/xbox.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_xbox_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/syncthing.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/syncthing.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_syncthing_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/syncthing.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_syncthing_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                              struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/syncthing.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/syncthing.c:48,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/syncthing.c:52,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/syncthing.c:52,1
    - Dst: ndpi_int_syncthing_add_connection
      Src: /src/ndpi/src/lib/protocols/syncthing.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/syncthing.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: ndpi_search_syncthing
    functionSourceFile: /src/ndpi/src/lib/protocols/syncthing.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - ndpi_int_syncthing_add_connection
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_syncthing(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/syncthing.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: init_syncthing_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/syncthing.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_syncthing_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/radmin.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/radmin.c:36,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/radmin.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: ndpi_int_radmin_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/radmin.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_radmin_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                           struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/radmin.c:47,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/radmin.c:49,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/radmin.c:52,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/radmin.c:52,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/radmin.c:54,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/radmin.c:54,1
    - Dst: current_pkt_from_server_to_client
      Src: /src/ndpi/src/lib/protocols/radmin.c:61,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/radmin.c:64,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/radmin.c:64,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/radmin.c:66,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/radmin.c:66,1
    - Dst: ndpi_int_radmin_add_connection
      Src: /src/ndpi/src/lib/protocols/radmin.c:69,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/radmin.c:75,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/radmin.c:75,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/radmin.c:77,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/radmin.c:77,1
    - Dst: ndpi_int_radmin_add_connection
      Src: /src/ndpi/src/lib/protocols/radmin.c:84,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/radmin.c:88,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 23
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 89
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 89
    functionName: ndpi_search_radmin
    functionSourceFile: /src/ndpi/src/lib/protocols/radmin.c
    functionUses: 0
    functionsReached:
    - ntohs
    - ndpi_int_radmin_add_connection
    - get_u_int16_t
    - NDPI_EXCLUDE_DISSECTOR
    - current_pkt_from_server_to_client
    - NDPI_LOG_DBG
    - ntohl
    - current_pkt_from_client_to_server
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_radmin(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/radmin.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: init_radmin_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/radmin.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_radmin_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dropbox.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ndpi_int_dropbox_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/dropbox.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_dropbox_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/dropbox.c:44,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/dropbox.c:49,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/dropbox.c:50,1
    - Dst: ndpi_int_dropbox_add_connection
      Src: /src/ndpi/src/lib/protocols/dropbox.c:51,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/dropbox.c:57,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/dropbox.c:58,1
    - Dst: ndpi_int_dropbox_add_connection
      Src: /src/ndpi/src/lib/protocols/dropbox.c:59,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dropbox.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 67
    functionName: ndpi_check_dropbox
    functionSourceFile: /src/ndpi/src/lib/protocols/dropbox.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_strnstr
    - NDPI_LOG_INFO
    - ndpi_int_dropbox_add_connection
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_check_dropbox(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dropbox.c:71,1
    - Dst: ndpi_check_dropbox
      Src: /src/ndpi/src/lib/protocols/dropbox.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 7
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: ndpi_search_dropbox
    functionSourceFile: /src/ndpi/src/lib/protocols/dropbox.c
    functionUses: 0
    functionsReached:
    - ndpi_check_dropbox
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_dropbox(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dropbox.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: init_dropbox_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dropbox.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dropbox_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/gtp.c:72,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/gtp.c:73,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/gtp.c:74,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/gtp.c:79,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/gtp.c:85,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/gtp.c:86,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/gtp.c:99,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/gtp.c:100,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/gtp.c:111,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/gtp.c:112,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/gtp.c:118,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 26
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 120
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 120
    functionName: ndpi_check_gtp
    functionSourceFile: /src/ndpi/src/lib/protocols/gtp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - ntohs
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_check_gtp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/gtp.c:124,1
    - Dst: ndpi_check_gtp
      Src: /src/ndpi/src/lib/protocols/gtp.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 6
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: ndpi_search_gtp
    functionSourceFile: /src/ndpi/src/lib/protocols/gtp.c
    functionUses: 0
    functionsReached:
    - ndpi_check_gtp
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_gtp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/gtp.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: init_gtp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/gtp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_gtp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/edonkey.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/edonkey.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: ndpi_int_edonkey_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/edonkey.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_edonkey_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/edonkey.c:41,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/edonkey.c:47,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/edonkey.c:51,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/edonkey.c:51,1
    - Dst: ndpi_int_edonkey_add_connection
      Src: /src/ndpi/src/lib/protocols/edonkey.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/edonkey.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 58
    functionName: ndpi_search_edonkey
    functionSourceFile: /src/ndpi/src/lib/protocols/edonkey.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_edonkey_add_connection
    - le32toh
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_edonkey(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/edonkey.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: init_edonkey_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/edonkey.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_edonkey_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/msdo.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/msdo.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: ndpi_int_msdo_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/msdo.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_msdo_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                         struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/msdo.c:48,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/msdo.c:56,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/msdo.c:56,1
    - Dst: ndpi_int_msdo_add_connection
      Src: /src/ndpi/src/lib/protocols/msdo.c:58,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/msdo.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 64
    functionName: ndpi_search_msdo
    functionSourceFile: /src/ndpi/src/lib/protocols/msdo.c
    functionUses: 0
    functionsReached:
    - ndpi_int_msdo_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_msdo(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/msdo.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: init_msdo_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/msdo.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_msdo_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/steam_datagram_relay.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/steam_datagram_relay.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ndpi_int_valve_sdr_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/steam_datagram_relay.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_valve_sdr_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                              struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/steam_datagram_relay.c:45,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/steam_datagram_relay.c:50,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/steam_datagram_relay.c:50,1
    - Dst: ndpi_int_valve_sdr_add_connection
      Src: /src/ndpi/src/lib/protocols/steam_datagram_relay.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/steam_datagram_relay.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: ndpi_search_valve_sdr
    functionSourceFile: /src/ndpi/src/lib/protocols/steam_datagram_relay.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - ndpi_int_valve_sdr_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_valve_sdr(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/steam_datagram_relay.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: init_valve_sdr_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/steam_datagram_relay.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_valve_sdr_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ethernet_ip.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: ndpi_int_ethernet_ip_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ethernet_ip.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ethernet_ip_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t\t*ndpi_struct,
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ethernet_ip.c:39,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/ethernet_ip.c:42,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/ethernet_ip.c:45,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/ethernet_ip.c:48,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ethernet_ip.c:51,1
    - Dst: ndpi_int_ethernet_ip_add_connection
      Src: /src/ndpi/src/lib/protocols/ethernet_ip.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ethernet_ip.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 60
    functionName: ndpi_search_ethernet_ip
    functionSourceFile: /src/ndpi/src/lib/protocols/ethernet_ip.c
    functionUses: 0
    functionsReached:
    - ndpi_int_ethernet_ip_add_connection
    - ntohs
    - le16toh
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ethernet_ip(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ethernet_ip.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: init_ethernet_ip_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ethernet_ip.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ethernet_ip_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/iec60870-5-104.c:37,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/iec60870-5-104.c:64,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/iec60870-5-104.c:66,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/iec60870-5-104.c:71,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 72
    functionName: ndpi_search_iec60870_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/iec60870-5-104.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_iec60870_tcp(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                     struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/iec60870-5-104.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: init_104_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/iec60870-5-104.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_104_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: ndpi_int_elasticsearch_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/elastic_search.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_elasticsearch_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                                  struct
      ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:48,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:52,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:56,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:58,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:62,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:62,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:65,1
    - Dst: ndpi_int_elasticsearch_add_connection
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: ndpi_search_elasticsearch
    functionSourceFile: /src/ndpi/src/lib/protocols/elastic_search.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - ndpi_int_elasticsearch_add_connection
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_elasticsearch(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                      struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/elastic_search.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: init_elasticsearch_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/elastic_search.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_elasticsearch_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/rdp.c:42,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/rdp.c:43,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/rdp.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: ndpi_int_rdp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/rdp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_rdp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\tstruct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: ndpi_search_tls_over_rdp
    functionSourceFile: /src/ndpi/src/lib/protocols/rdp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_tls_over_rdp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rdp.c:72,1
    - Dst: tpkt_verify_hdr
      Src: /src/ndpi/src/lib/protocols/rdp.c:76,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/rdp.c:80,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/rdp.c:85,1
    - Dst: ndpi_int_rdp_add_connection
      Src: /src/ndpi/src/lib/protocols/rdp.c:99,1
    - Dst: ndpi_int_rdp_add_connection
      Src: /src/ndpi/src/lib/protocols/rdp.c:108,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rdp.c:113,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rdp.c:115,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rdp.c:116,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/rdp.c:126,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rdp.c:128,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/rdp.c:128,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rdp.c:129,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/rdp.c:129,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rdp.c:130,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/rdp.c:130,1
    - Dst: ndpi_int_rdp_add_connection
      Src: /src/ndpi/src/lib/protocols/rdp.c:132,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/rdp.c:136,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/rdp.c:139,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rdp.c:140,1
    - Dst: ndpi_int_rdp_add_connection
      Src: /src/ndpi/src/lib/protocols/rdp.c:145,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/rdp.c:153,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rdp.c:155,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/rdp.c:155,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rdp.c:156,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/rdp.c:156,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/rdp.c:157,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/rdp.c:157,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/rdp.c:159,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/rdp.c:162,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/rdp.c:165,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rdp.c:166,1
    - Dst: ndpi_int_rdp_add_connection
      Src: /src/ndpi/src/lib/protocols/rdp.c:171,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rdp.c:178,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 66
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 180
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 180
    functionName: ndpi_search_rdp
    functionSourceFile: /src/ndpi/src/lib/protocols/rdp.c
    functionUses: 0
    functionsReached:
    - tpkt_verify_hdr
    - memcpy
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - memcmp
    - NDPI_LOG_DBG
    - ndpi_int_rdp_add_connection
    - current_pkt_from_client_to_server
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_rdp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/rdp.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: init_rdp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/rdp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_rdp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/flute.c:39,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/flute.c:47,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/flute.c:51,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/flute.c:51,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/flute.c:52,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/flute.c:52,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/flute.c:54,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/flute.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/flute.c:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 63
    functionName: ndpi_search_flute
    functionSourceFile: /src/ndpi/src/lib/protocols/flute.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_flute(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/flute.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: init_flute_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/flute.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_flute_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: ndpi_int_opc_ua_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/opc-ua.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_opc_ua_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                           struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:48,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:56,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:57,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:58,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:59,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:60,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:61,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:62,1
    - Dst: ndpi_int_opc_ua_add_connection
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:69,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 70
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 70
    functionName: ndpi_search_opc_ua
    functionSourceFile: /src/ndpi/src/lib/protocols/opc-ua.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ndpi_int_opc_ua_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_opc_ua(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/opc-ua.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: init_opc_ua_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/opc-ua.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_opc_ua_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tplink_shp.c:37,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tplink_shp.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: ndpi_int_tplink_shp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/tplink_shp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_tplink_shp_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                                  struct
      ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tplink_shp.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tplink_shp.c:60,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tplink_shp.c:75,1
    - Dst: ndpi_int_tplink_shp_add_connection
      Src: /src/ndpi/src/lib/protocols/tplink_shp.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 47
    functionDepth: 6
    functionLinenumber: 47
    functionLinenumberEnd: 80
    functionName: ndpi_search_tplink_shp
    functionSourceFile: /src/ndpi/src/lib/protocols/tplink_shp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_tplink_shp_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_tplink_shp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/tplink_shp.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: init_tplink_shp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/tplink_shp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_tplink_shp_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/netease_games.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/netease_games.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ndpi_int_netease_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/netease_games.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_netease_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                            struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/netease_games.c:49,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/netease_games.c:51,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/netease_games.c:51,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/netease_games.c:52,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/netease_games.c:52,1
    - Dst: ndpi_int_netease_add_connection
      Src: /src/ndpi/src/lib/protocols/netease_games.c:54,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/netease_games.c:60,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/netease_games.c:60,1
    - Dst: ndpi_int_netease_add_connection
      Src: /src/ndpi/src/lib/protocols/netease_games.c:62,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/netease_games.c:68,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/netease_games.c:68,1
    - Dst: ndpi_int_netease_add_connection
      Src: /src/ndpi/src/lib/protocols/netease_games.c:70,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/netease_games.c:76,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 77
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 77
    functionName: ndpi_search_netease
    functionSourceFile: /src/ndpi/src/lib/protocols/netease_games.c
    functionUses: 0
    functionsReached:
    - le16toh
    - get_u_int16_t
    - ndpi_int_netease_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - ntohl
    - le32toh
    - current_pkt_from_client_to_server
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_netease(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/netease_games.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: init_netease_games_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/netease_games.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_netease_games_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ndpi_int_tencent_games_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/tencent_games.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_tencent_games_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                                  struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:45,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:48,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:48,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:49,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:49,1
    - Dst: ndpi_int_tencent_games_add_connection
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:51,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:55,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:55,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:56,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:56,1
    - Dst: ndpi_int_tencent_games_add_connection
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:58,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:62,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:62,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:63,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:63,1
    - Dst: ndpi_int_tencent_games_add_connection
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:65,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:69,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:70,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:70,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:71,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:71,1
    - Dst: ndpi_int_tencent_games_add_connection
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:73,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:77,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:77,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:78,1
    - Dst: ndpi_int_tencent_games_add_connection
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:80,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:85,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 86
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 86
    functionName: ndpi_search_tencent_games
    functionSourceFile: /src/ndpi/src/lib/protocols/tencent_games.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - ndpi_int_tencent_games_add_connection
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_tencent_games(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                      struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/tencent_games.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: init_tencent_games_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/tencent_games.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_tencent_games_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/crossfire.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/crossfire.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: ndpi_int_crossfire_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/crossfire.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_crossfire_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                              struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/crossfire.c:43,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/crossfire.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/crossfire.c:47,1
    - Dst: ndpi_int_crossfire_add_connection
      Src: /src/ndpi/src/lib/protocols/crossfire.c:49,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/crossfire.c:58,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/crossfire.c:58,1
    - Dst: ndpi_int_crossfire_add_connection
      Src: /src/ndpi/src/lib/protocols/crossfire.c:60,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/crossfire.c:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: ndpi_search_crossfire_tcp_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/crossfire.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int32_t
    - ndpi_int_crossfire_add_connection
    linkageType: ''
    returnType: void
    signature: void ndpi_search_crossfire_tcp_udp(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/crossfire.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: init_crossfire_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/crossfire.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_crossfire_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: can_hdr
    functionSourceFile: /src/ndpi/src/lib/protocols/can.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON can_hdr
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/can.c:41,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/can.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: ndpi_int_can_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/can.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_can_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                        struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/can.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/can.c:57,1
    - Dst: ndpi_ntohll
      Src: /src/ndpi/src/lib/protocols/can.c:62,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/can.c:63,1
    - Dst: ndpi_int_can_add_connection
      Src: /src/ndpi/src/lib/protocols/can.c:67,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/can.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 72
      start: 48
    functionDepth: 6
    functionLinenumber: 48
    functionLinenumberEnd: 72
    functionName: ndpi_search_can
    functionSourceFile: /src/ndpi/src/lib/protocols/can.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_ntohll
    - ndpi_int_can_add_connection
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_can(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/can.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: init_can_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/can.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_can_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/usenet.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: ndpi_int_usenet_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/usenet.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_usenet_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \  *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/usenet.c:46,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/usenet.c:48,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/usenet.c:56,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/usenet.c:57,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/usenet.c:59,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/usenet.c:62,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/usenet.c:74,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/usenet.c:75,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/usenet.c:78,1
    - Dst: ndpi_int_usenet_add_connection
      Src: /src/ndpi/src/lib/protocols/usenet.c:79,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/usenet.c:81,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/usenet.c:82,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/usenet.c:85,1
    - Dst: ndpi_int_usenet_add_connection
      Src: /src/ndpi/src/lib/protocols/usenet.c:86,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/usenet.c:88,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/usenet.c:89,1
    - Dst: ndpi_int_usenet_add_connection
      Src: /src/ndpi/src/lib/protocols/usenet.c:90,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/usenet.c:95,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 96
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 96
    functionName: ndpi_search_usenet_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/usenet.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_int_usenet_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_usenet_tcp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/usenet.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: init_usenet_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/usenet.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_usenet_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: amqp_header
    functionSourceFile: /src/ndpi/src/lib/protocols/amqp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON amqp_header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/amqp.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: ndpi_int_amqp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/amqp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_amqp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/amqp.c:45,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/amqp.c:51,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/amqp.c:55,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/amqp.c:59,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/amqp.c:62,1
    - Dst: ndpi_int_amqp_add_connection
      Src: /src/ndpi/src/lib/protocols/amqp.c:63,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/amqp.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 73
    functionName: ndpi_search_amqp
    functionSourceFile: /src/ndpi/src/lib/protocols/amqp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - htonl
    - NDPI_LOG_INFO
    - ndpi_int_amqp_add_connection
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_search_amqp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/amqp.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: init_amqp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/amqp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_amqp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/activision.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/activision.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_activision_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/activision.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_activision_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                               struct
      ndpi_flow_struct * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/activision.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/activision.c:48,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/activision.c:56,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/activision.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/activision.c:58,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/activision.c:62,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/activision.c:62,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/activision.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/activision.c:71,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/activision.c:75,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/activision.c:75,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/activision.c:76,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/activision.c:76,1
    - Dst: ndpi_int_activision_add_connection
      Src: /src/ndpi/src/lib/protocols/activision.c:78,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/activision.c:84,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/activision.c:90,1
    - Dst: ndpi_int_activision_add_connection
      Src: /src/ndpi/src/lib/protocols/activision.c:97,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 99
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 99
    functionName: ndpi_search_activision
    functionSourceFile: /src/ndpi/src/lib/protocols/activision.c
    functionUses: 0
    functionsReached:
    - ntohs
    - ndpi_int_activision_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_activision(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/activision.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: init_activision_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/activision.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_activision_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: ndpi_int_cloudflare_warp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/cloudflare_warp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_cloudflare_warp_add_connection(struct ndpi_detection_module_struct
      * ndpi_struct,\n                                                    struct ndpi_flow_struct
      * flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:40,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:63,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:63,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:64,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:64,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:65,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:65,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:66,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:66,1
    - Dst: ndpi_int_cloudflare_warp_add_connection
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:67,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:73,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:73,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:74,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:74,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:75,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:75,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:76,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:76,1
    - Dst: ndpi_int_cloudflare_warp_add_connection
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:77,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:82,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 13
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 83
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 83
    functionName: ndpi_search_cloudflare_warp
    functionSourceFile: /src/ndpi/src/lib/protocols/cloudflare_warp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_cloudflare_warp_add_connection
    - ntohs
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_cloudflare_warp(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                        struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/cloudflare_warp.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: init_cloudflare_warp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/cloudflare_warp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_cloudflare_warp_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/haproxy.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: ndpi_int_haproxy_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/haproxy.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_haproxy_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/haproxy.c:38,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/haproxy.c:40,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/haproxy.c:42,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/haproxy.c:46,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/haproxy.c:46,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/haproxy.c:48,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/haproxy.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/haproxy.c:56,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/haproxy.c:62,1
    - Dst: ndpi_int_haproxy_add_connection
      Src: /src/ndpi/src/lib/protocols/haproxy.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 32
    functionDepth: 6
    functionLinenumber: 32
    functionLinenumberEnd: 67
    functionName: ndpi_search_haproxy
    functionSourceFile: /src/ndpi/src/lib/protocols/haproxy.c
    functionUses: 0
    functionsReached:
    - strncmp
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_STATICSTRING_LEN
    - ndpi_int_haproxy_add_connection
    - NDPI_LOG_DBG
    - ndpi_strnstr
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_haproxy(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/haproxy.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: init_haproxy_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/haproxy.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_haproxy_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/irc.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - confidence
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_confidence_t
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ndpi_int_irc_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/irc.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_irc_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow, ndpi_confidence_t confidence)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_memmem
      Src: /src/ndpi/src/lib/protocols/irc.c:42,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/src/lib/protocols/irc.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: ndpi_check_for_NOTICE_or_PRIVMSG
    functionSourceFile: /src/ndpi/src/lib/protocols/irc.c
    functionUses: 0
    functionsReached:
    - ndpi_memmem
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_check_for_NOTICE_or_PRIVMSG(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:60,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:61,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:62,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/irc.c:63,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 69
    functionName: ndpi_check_for_Nickname
    functionSourceFile: /src/ndpi/src/lib/protocols/irc.c
    functionUses: 0
    functionsReached:
    - memcmp
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_check_for_Nickname(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:82,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/irc.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: ndpi_check_for_cmd
    functionSourceFile: /src/ndpi/src/lib/protocols/irc.c
    functionUses: 0
    functionsReached:
    - memcmp
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t ndpi_check_for_cmd(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/irc.c:99,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/irc.c:102,1
    - Dst: get_u_int8_t
      Src: /src/ndpi/src/lib/protocols/irc.c:108,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/irc.c:109,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/irc.c:109,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:110,1
    - Dst: ndpi_parse_packet_line_info_any
      Src: /src/ndpi/src/lib/protocols/irc.c:113,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/irc.c:115,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/irc.c:124,1
    - Dst: ndpi_int_irc_add_connection
      Src: /src/ndpi/src/lib/protocols/irc.c:125,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/irc.c:131,1
    - Dst: ndpi_int_irc_add_connection
      Src: /src/ndpi/src/lib/protocols/irc.c:132,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:137,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:138,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:139,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:140,1
    - Dst: ndpi_check_for_NOTICE_or_PRIVMSG
      Src: /src/ndpi/src/lib/protocols/irc.c:140,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:141,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:142,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:143,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:144,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:145,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:146,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:147,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/irc.c:153,1
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/irc.c:154,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/irc.c:157,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/irc.c:158,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/irc.c:161,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/irc.c:164,1
    - Dst: ndpi_int_irc_add_connection
      Src: /src/ndpi/src/lib/protocols/irc.c:165,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/irc.c:169,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/irc.c:173,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/irc.c:179,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/irc.c:181,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:183,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:184,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/irc.c:185,1
    - Dst: ndpi_int_irc_add_connection
      Src: /src/ndpi/src/lib/protocols/irc.c:186,1
    - Dst: ndpi_parse_packet_line_info_any
      Src: /src/ndpi/src/lib/protocols/irc.c:194,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/irc.c:196,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:198,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:199,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/irc.c:201,1
    - Dst: ndpi_int_irc_add_connection
      Src: /src/ndpi/src/lib/protocols/irc.c:202,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:215,1
    - Dst: ndpi_check_for_Nickname
      Src: /src/ndpi/src/lib/protocols/irc.c:216,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/irc.c:218,1
    - Dst: ndpi_check_for_cmd
      Src: /src/ndpi/src/lib/protocols/irc.c:219,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/irc.c:220,1
    - Dst: ndpi_int_irc_add_connection
      Src: /src/ndpi/src/lib/protocols/irc.c:221,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 94
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 225
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 225
    functionName: ndpi_search_irc_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/irc.c
    functionUses: 0
    functionsReached:
    - ndpi_parse_packet_line_info
    - ndpi_set_risk
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - memcmp
    - ndpi_int_irc_add_connection
    - NDPI_LOG_DBG2
    - NDPI_LOG_DBG
    - ndpi_check_for_Nickname
    - ndpi_check_for_cmd
    - ndpi_parse_packet_line_info_any
    - NDPI_LOG_INFO
    - get_u_int8_t
    - snprintf
    - strchr
    - ndpi_check_for_NOTICE_or_PRIVMSG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_irc_tcp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/irc.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: init_irc_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/irc.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_irc_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/skinny.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: ndpi_int_skinny_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/skinny.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_skinny_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \  *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 4
    argCount: 1
    argNames:
    - version
    argTypes:
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: is_valid_version
    functionSourceFile: /src/ndpi/src/lib/protocols/skinny.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_valid_version(u_int32_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 1
    argNames:
    - opcode
    argTypes:
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: is_valid_opcode
    functionSourceFile: /src/ndpi/src/lib/protocols/skinny.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_valid_opcode(u_int32_t opcode)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/skinny.c:68,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/skinny.c:71,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/skinny.c:71,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/skinny.c:72,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/skinny.c:77,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/skinny.c:77,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/skinny.c:78,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/skinny.c:78,1
    - Dst: le32toh
      Src: /src/ndpi/src/lib/protocols/skinny.c:79,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/skinny.c:79,1
    - Dst: is_valid_version
      Src: /src/ndpi/src/lib/protocols/skinny.c:82,1
    - Dst: is_valid_opcode
      Src: /src/ndpi/src/lib/protocols/skinny.c:83,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/skinny.c:84,1
    - Dst: ndpi_int_skinny_add_connection
      Src: /src/ndpi/src/lib/protocols/skinny.c:85,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/skinny.c:90,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 91
      start: 63
    functionDepth: 6
    functionLinenumber: 63
    functionLinenumberEnd: 91
    functionName: ndpi_search_skinny
    functionSourceFile: /src/ndpi/src/lib/protocols/skinny.c
    functionUses: 0
    functionsReached:
    - ndpi_int_skinny_add_connection
    - ntohs
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - is_valid_opcode
    - NDPI_LOG_DBG
    - is_valid_version
    - NDPI_LOG_INFO
    - le32toh
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: void ndpi_search_skinny(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/skinny.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: init_skinny_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/skinny.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_skinny_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/mining.c:36,1
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/mining.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: mining_make_lru_cache_key
    functionSourceFile: /src/ndpi/src/lib/protocols/mining.c
    functionUses: 4
    functionsReached:
    - ndpi_quick_hash64
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t mining_make_lru_cache_key(struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/mining.c:48,1
    - Dst: mining_make_lru_cache_key
      Src: /src/ndpi/src/lib/protocols/mining.c:48,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/mining.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: cacheMiningHostTwins
    functionSourceFile: /src/ndpi/src/lib/protocols/mining.c
    functionUses: 0
    functionsReached:
    - mining_make_lru_cache_key
    - ndpi_lru_add_to_cache
    - ndpi_get_current_time
    linkageType: ''
    returnType: void
    signature: "void cacheMiningHostTwins(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/mining.c:57,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mining.c:61,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/mining.c:66,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/mining.c:67,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/mining.c:70,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/mining.c:71,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mining.c:72,1
    - Dst: cacheMiningHostTwins
      Src: /src/ndpi/src/lib/protocols/mining.c:73,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/mining.c:78,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/mining.c:79,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mining.c:80,1
    - Dst: cacheMiningHostTwins
      Src: /src/ndpi/src/lib/protocols/mining.c:81,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/src/lib/protocols/mining.c:85,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/mining.c:86,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/mining.c:87,1
    - Dst: cacheMiningHostTwins
      Src: /src/ndpi/src/lib/protocols/mining.c:88,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/mining.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 93
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 93
    functionName: ndpi_search_mining
    functionSourceFile: /src/ndpi/src/lib/protocols/mining.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_strnstr
    - cacheMiningHostTwins
    - ndpi_set_detected_protocol
    - ndpi_snprintf
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_mining(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/mining.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: init_mining_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/mining.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_mining_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: tinc_cache_entry
    functionSourceFile: /src/ndpi/src/lib/protocols/tinc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON tinc_cache_entry
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cache_remove
      Src: /src/ndpi/src/lib/protocols/tinc.c:55,1
    - Dst: cache_remove
      Src: /src/ndpi/src/lib/protocols/tinc.c:56,1
    - Dst: cache_remove
      Src: /src/ndpi/src/lib/protocols/tinc.c:58,1
    - Dst: cache_remove
      Src: /src/ndpi/src/lib/protocols/tinc.c:59,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tinc.c:63,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tinc.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tinc.c:68,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/tinc.c:75,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/tinc.c:78,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/tinc.c:87,1
    - Dst: cache_new
      Src: /src/ndpi/src/lib/protocols/tinc.c:118,1
    - Dst: cache_add
      Src: /src/ndpi/src/lib/protocols/tinc.c:120,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tinc.c:121,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tinc.c:122,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tinc.c:133,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 60
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 134
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 134
    functionName: ndpi_check_tinc
    functionSourceFile: /src/ndpi/src/lib/protocols/tinc.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - cache_add
    - NDPI_LOG_INFO
    - cache_remove
    - ndpi_set_detected_protocol
    - cache_new
    linkageType: ''
    returnType: void
    signature: void ndpi_check_tinc(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tinc.c:137,1
    - Dst: ndpi_check_tinc
      Src: /src/ndpi/src/lib/protocols/tinc.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 6
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: ndpi_search_tinc
    functionSourceFile: /src/ndpi/src/lib/protocols/tinc.c
    functionUses: 0
    functionsReached:
    - ndpi_check_tinc
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_tinc(struct ndpi_detection_module_struct* ndpi_struct,
      struct ndpi_flow_struct* flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/tinc.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: init_tinc_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/tinc.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_tinc_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/avast_securedns.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: ndpi_int_avast_securedns_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/avast_securedns.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_avast_securedns_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                                    struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/avast_securedns.c:41,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/avast_securedns.c:41,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/avast_securedns.c:44,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/avast_securedns.c:48,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/avast_securedns.c:48,1
    - Dst: ndpi_int_avast_securedns_add_connection
      Src: /src/ndpi/src/lib/protocols/avast_securedns.c:50,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/avast_securedns.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: ndpi_search_avast_securedns
    functionSourceFile: /src/ndpi/src/lib/protocols/avast_securedns.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_STATICSTRING_LEN
    - ndpi_int_avast_securedns_add_connection
    - strncasecmp
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_avast_securedns(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                        struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/avast_securedns.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: init_avast_securedns_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/avast_securedns.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_avast_securedns_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtps.c:45,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/rtps.c:48,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/rtps.c:49,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/rtps.c:53,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/rtps.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtps.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 61
    functionName: ndpi_search_rtps
    functionSourceFile: /src/ndpi/src/lib/protocols/rtps.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_rtps(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/rtps.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: init_rtps_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/rtps.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_rtps_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zug.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/zug.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: ndpi_int_zug_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/zug.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_zug_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                        struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/zug.c:43,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/zug.c:47,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/zug.c:51,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/zug.c:51,1
    - Dst: ndpi_int_zug_add_connection
      Src: /src/ndpi/src/lib/protocols/zug.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/zug.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: ndpi_search_zug
    functionSourceFile: /src/ndpi/src/lib/protocols/zug.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_zug_add_connection
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_zug(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/zug.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: init_zug_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/zug.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_zug_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/telnet.c:43,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/telnet.c:56,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/telnet.c:68,1
    - Dst: strncasecmp
      Src: /src/ndpi/src/lib/protocols/telnet.c:86,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/telnet.c:100,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/telnet.c:102,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/src/lib/protocols/telnet.c:116,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 128
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 128
    functionName: search_telnet_again
    functionSourceFile: /src/ndpi/src/lib/protocols/telnet.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - printf
    - ndpi_isprint
    - strncasecmp
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int search_telnet_again(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/telnet.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: ndpi_int_telnet_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/telnet.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_telnet_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t
      \  *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/telnet.c:155,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 13
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 182
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 182
    functionName: search_iac
    functionSourceFile: /src/ndpi/src/lib/protocols/telnet.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: __mingw_forceinline
    signature: __mingw_forceinline search_iac(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/telnet.c:189,1
    - Dst: search_iac
      Src: /src/ndpi/src/lib/protocols/telnet.c:191,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/telnet.c:193,1
    - Dst: ndpi_int_telnet_add_connection
      Src: /src/ndpi/src/lib/protocols/telnet.c:194,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/telnet.c:199,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/telnet.c:205,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/telnet.c:210,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/telnet.c:212,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 216
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 216
    functionName: ndpi_search_telnet_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/telnet.c
    functionUses: 0
    functionsReached:
    - search_iac
    - printf
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_telnet_add_connection
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_telnet_tcp(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \  struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/telnet.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: init_telnet_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/telnet.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_telnet_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: FCGI_Header
    functionSourceFile: /src/ndpi/src/lib/protocols/fastcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON FCGI_Header
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: FCGI_Params
    functionSourceFile: /src/ndpi/src/lib/protocols/fastcgi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON FCGI_Params
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:77,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - match
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - ndpi_protocol_match_result*
    constantsTouched: []
    func_position:
      end: 88
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 88
    functionName: ndpi_int_fastcgi_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/fastcgi.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_fastcgi_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                            struct ndpi_flow_struct
      * const flow,\n                                            ndpi_protocol_match_result
      * const match)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:114,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:116,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:117,1
    - Dst: ndpi_http_str2method
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:139,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:141,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:142,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:143,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:144,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - flow
    - packet
    argTypes:
    - struct ndpi_flow_struct*
    - struct ndpi_packet_struct*
    constantsTouched: []
    func_position:
      end: 148
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 148
    functionName: fcgi_parse_params
    functionSourceFile: /src/ndpi/src/lib/protocols/fastcgi.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_hostname_sni_set
    - ndpi_min
    - NDPI_ARRAY_LENGTH
    - strncpy
    - ndpi_http_str2method
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fcgi_parse_params(struct ndpi_flow_struct * const flow,\n                             struct
      ndpi_packet_struct * const packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:159,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:163,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:171,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:178,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:182,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:185,1
    - Dst: fcgi_parse_params
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:198,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:200,1
    - Dst: ndpi_int_fastcgi_add_connection
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:201,1
    - Dst: ndpi_match_host_subprotocol
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:203,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:205,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:207,1
    - Dst: ndpi_is_valid_hostname
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:209,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:213,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:214,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:217,1
    - Dst: ndpi_int_fastcgi_add_connection
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:219,1
    - Dst: ndpi_int_fastcgi_add_connection
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 228
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 228
    functionName: ndpi_search_fastcgi
    functionSourceFile: /src/ndpi/src/lib/protocols/fastcgi.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ntohs
    - ndpi_int_fastcgi_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - fcgi_parse_params
    - NDPI_LOG_DBG
    - ndpi_check_dga_name
    - ndpi_match_host_subprotocol
    - ndpi_is_valid_hostname
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_fastcgi(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_search_fastcgi
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 7
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: ndpi_search_fastcgi_extra
    functionSourceFile: /src/ndpi/src/lib/protocols/fastcgi.c
    functionUses: 0
    functionsReached:
    - ndpi_search_fastcgi
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_fastcgi_extra(struct ndpi_detection_module_struct
      * ndpi_struct,\n                                     struct ndpi_flow_struct
      * flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/fastcgi.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 244
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 244
    functionName: init_fastcgi_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/fastcgi.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_fastcgi_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/glbp.c:39,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/glbp.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: ndpi_int_glbp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/glbp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_glbp_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                         struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/glbp.c:50,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/glbp.c:56,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/glbp.c:57,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/glbp.c:63,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/glbp.c:63,1
    - Dst: ndpi_int_glbp_add_connection
      Src: /src/ndpi/src/lib/protocols/glbp.c:68,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/glbp.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 6
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: ndpi_search_glbp
    functionSourceFile: /src/ndpi/src/lib/protocols/glbp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_glbp_add_connection
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_glbp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/glbp.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: init_glbp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/glbp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_glbp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/ndpi/src/lib/protocols/tls.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: str_contains_digit
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool str_contains_digit(char *str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:133,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 151
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 151
    functionName: ndpi_tls_refine_master_protocol
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t ndpi_tls_refine_master_protocol(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_tls_refine_master_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: __get_master
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 2
    functionsReached:
    - ndpi_tls_refine_master_protocol
    linkageType: ''
    returnType: u_int32_t
    signature: "u_int32_t __get_master(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \     struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_flow_addr_informative
      Src: /src/ndpi/src/lib/protocols/tls.c:203,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 207
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 207
    functionName: keep_extra_dissection_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - is_flow_addr_informative
    linkageType: ''
    returnType: int
    signature: "int keep_extra_dissection_tcp(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                     struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:280,1
    - Dst: ndpi_mahalanobis_distance
      Src: /src/ndpi/src/lib/protocols/tls.c:284,1
    - Dst: ndpi_mahalanobis_distance
      Src: /src/ndpi/src/lib/protocols/tls.c:286,1
    - Dst: ndpi_mahalanobis_distance
      Src: /src/ndpi/src/lib/protocols/tls.c:287,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tls.c:289,1
    - Dst: ndpi_mahalanobis_distance
      Src: /src/ndpi/src/lib/protocols/tls.c:290,1
    - Dst: ndpi_mahalanobis_distance
      Src: /src/ndpi/src/lib/protocols/tls.c:291,1
    - Dst: ndpi_mahalanobis_distance
      Src: /src/ndpi/src/lib/protocols/tls.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - set
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct tls_obfuscated_heuristic_set*
    constantsTouched: []
    func_position:
      end: 300
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 300
    functionName: check_set
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - ndpi_mahalanobis_distance
    - NDPI_LOG_DBG
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: int
    signature: "int check_set(struct ndpi_detection_module_struct* ndpi_struct,\n
      \                    struct tls_obfuscated_heuristic_set *set)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:328,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:352,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/tls.c:361,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:364,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:367,1
    - Dst: current_pkt_from_server_to_client
      Src: /src/ndpi/src/lib/protocols/tls.c:370,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:374,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:376,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:382,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/tls.c:394,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:395,1
    - Dst: current_pkt_from_server_to_client
      Src: /src/ndpi/src/lib/protocols/tls.c:407,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/tls.c:411,1
    - Dst: current_pkt_from_server_to_client
      Src: /src/ndpi/src/lib/protocols/tls.c:415,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/tls.c:419,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:430,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:437,1
    - Dst: check_set
      Src: /src/ndpi/src/lib/protocols/tls.c:438,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:451,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 92
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 457
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 457
    functionName: tls_obfuscated_heur_search
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - current_pkt_from_server_to_client
    - current_pkt_from_client_to_server
    - check_set
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: int
    signature: "int tls_obfuscated_heur_search(struct ndpi_detection_module_struct*
      ndpi_struct,\n                                      struct ndpi_flow_struct*
      flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/tls.c:465,1
    - Dst: tls_obfuscated_heur_search
      Src: /src/ndpi/src/lib/protocols/tls.c:467,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tls.c:471,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:481,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:482,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:487,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:489,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:492,1
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/protocols/tls.c:493,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tls.c:495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 498
      start: 461
    functionDepth: 5
    functionLinenumber: 461
    functionLinenumberEnd: 498
    functionName: tls_obfuscated_heur_search_again
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_LOG_DBG2
    - ndpi_get_proto_category
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - __get_master
    - tls_obfuscated_heur_search
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: int
    signature: "int tls_obfuscated_heur_search_again(struct ndpi_detection_module_struct*
      ndpi_struct,\n\t\t\t\t\t    struct ndpi_flow_struct* flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/tls.c:505,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/protocols/tls.c:508,1
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/tls.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 516
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 516
    functionName: switch_extra_dissection_to_tls_obfuscated_heur
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 1
    functionsReached:
    - ndpi_calloc
    - memset
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: "void switch_extra_dissection_to_tls_obfuscated_heur(struct ndpi_detection_module_struct*
      ndpi_struct,\n                                                    struct ndpi_flow_struct*
      flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:527,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/src/lib/protocols/tls.c:535,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:541,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:554,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/tls.c:572,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:577,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:586,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - payload
    - payload_len
    - seq
    - message
    argTypes:
    - u_int8_t*
    - u_int16_t
    - u_int32_t
    - message_t*
    constantsTouched: []
    func_position:
      end: 594
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 594
    functionName: ndpi_search_tls_memory
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_malloc
    - printf
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_tls_memory(const u_int8_t *payload,\n\t\t\t\t  u_int16_t
      payload_len,\n\t\t\t\t  u_int32_t seq,\n\t\t\t\t  message_t *message)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/ndpi/src/lib/protocols/tls.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - buffer_len
    argTypes:
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: cleanupServerName
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: void
    signature: void cleanupServerName(char *buffer, u_int buffer_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:625,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/tls.c:641,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tls.c:642,1
    - Dst: ndpi_normalize_printable_string
      Src: /src/ndpi/src/lib/protocols/tls.c:646,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 8
    argNames:
    - packet
    - offset
    - buffer
    - buffer_len
    - rdnSeqBuf
    - rdnSeqBuf_offset
    - rdnSeqBuf_len
    - label
    argTypes:
    - struct ndpi_packet_struct*
    - u_int
    - char*
    - u_int
    - char*
    - u_int*
    - u_int
    - char*
    constantsTouched: []
    func_position:
      end: 661
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 661
    functionName: extractRDNSequence
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - strncpy
    - ndpi_normalize_printable_string
    - printf
    - ndpi_min
    linkageType: ''
    returnType: int
    signature: "int extractRDNSequence(struct ndpi_packet_struct *packet,\n\t\t\t
      \     u_int offset, char *buffer, u_int buffer_len,\n\t\t\t      char *rdnSeqBuf,
      u_int *rdnSeqBuf_offset,\n\t\t\t      u_int rdnSeqBuf_len,\n\t\t\t      const
      char *label)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/tls.c:685,1
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/tls.c:687,1
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/tls.c:690,1
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/src/lib/protocols/tls.c:692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - packet
    - is_from_client
    argTypes:
    - struct ndpi_packet_struct*
    - int
    constantsTouched: []
    func_position:
      end: 697
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 697
    functionName: make_tls_cert_key
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - ndpi_quick_hash64
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t make_tls_cert_key(struct ndpi_packet_struct *packet, int
      is_from_client)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: make_tls_cert_key
      Src: /src/ndpi/src/lib/protocols/tls.c:714,1
    - Dst: ndpi_lru_find_cache
      Src: /src/ndpi/src/lib/protocols/tls.c:716,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/tls.c:718,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:719,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:721,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:721,1
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/protocols/tls.c:722,1
    - Dst: ndpi_check_subprotocol_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:723,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:724,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - is_from_client
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - int
    constantsTouched: []
    func_position:
      end: 728
      start: 701
    functionDepth: 5
    functionLinenumber: 701
    functionLinenumberEnd: 728
    functionName: checkTLSSubprotocol
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - ndpi_lru_find_cache
    - ndpi_get_proto_category
    - make_tls_cert_key
    - ndpi_unset_risk
    - __get_master
    - ndpi_get_current_time
    - ndpi_set_detected_protocol
    - ndpi_check_subprotocol_risk
    linkageType: ''
    returnType: void
    signature: "void checkTLSSubprotocol(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\tstruct
      ndpi_flow_struct *flow,\n\t\t\t\tint is_from_client)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:745,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:760,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:768,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:776,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:784,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:792,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:801,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:811,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/tls.c:816,1
    - Dst: ndpi_normalize_printable_string
      Src: /src/ndpi/src/lib/protocols/tls.c:817,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:818,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:820,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:821,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:823,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:840,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:841,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:842,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tls.c:849,1
    - Dst: strptime
      Src: /src/ndpi/src/lib/protocols/tls.c:853,1
    - Dst: timegm
      Src: /src/ndpi/src/lib/protocols/tls.c:854,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:856,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:874,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:875,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:876,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tls.c:883,1
    - Dst: strptime
      Src: /src/ndpi/src/lib/protocols/tls.c:887,1
    - Dst: timegm
      Src: /src/ndpi/src/lib/protocols/tls.c:888,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:890,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:898,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:901,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:904,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:906,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:911,1
    - Dst: strftime
      Src: /src/ndpi/src/lib/protocols/tls.c:917,1
    - Dst: ndpi_gmtime_r
      Src: /src/ndpi/src/lib/protocols/tls.c:917,1
    - Dst: strftime
      Src: /src/ndpi/src/lib/protocols/tls.c:920,1
    - Dst: ndpi_gmtime_r
      Src: /src/ndpi/src/lib/protocols/tls.c:920,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:922,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:923,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:925,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:929,1
    - Dst: strftime
      Src: /src/ndpi/src/lib/protocols/tls.c:935,1
    - Dst: ndpi_gmtime_r
      Src: /src/ndpi/src/lib/protocols/tls.c:935,1
    - Dst: strftime
      Src: /src/ndpi/src/lib/protocols/tls.c:938,1
    - Dst: ndpi_gmtime_r
      Src: /src/ndpi/src/lib/protocols/tls.c:938,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:940,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:941,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:943,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:958,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:998,1
    - Dst: inet_ntop
      Src: /src/ndpi/src/lib/protocols/tls.c:1005,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tls.c:1011,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/tls.c:1015,1
    - Dst: cleanupServerName
      Src: /src/ndpi/src/lib/protocols/tls.c:1016,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1019,1
    - Dst: ndpi_normalize_printable_string
      Src: /src/ndpi/src/lib/protocols/tls.c:1028,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1029,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1032,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1037,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/tls.c:1051,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/tls.c:1058,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/tls.c:1059,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tls.c:1068,1
    - Dst: ndpi_match_hostname_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:1079,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:1079,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1081,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:1089,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1091,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1093,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:1102,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:1105,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1106,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1108,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/tls.c:1119,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:1131,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:1133,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:1133,1
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/protocols/tls.c:1134,1
    - Dst: ndpi_check_subprotocol_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1135,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1136,1
    - Dst: make_tls_cert_key
      Src: /src/ndpi/src/lib/protocols/tls.c:1139,1
    - Dst: ndpi_lru_add_to_cache
      Src: /src/ndpi/src/lib/protocols/tls.c:1141,1
    - Dst: ndpi_get_current_time
      Src: /src/ndpi/src/lib/protocols/tls.c:1141,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/tls.c:1148,1
    - Dst: ndpi_check_issuerdn_risk_exception
      Src: /src/ndpi/src/lib/protocols/tls.c:1150,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1154,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1158,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 241
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - p_offset
    - certificate_len
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1160
      start: 733
    functionDepth: 6
    functionLinenumber: 733
    functionLinenumberEnd: 1160
    functionName: processCertificateElements
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - make_tls_cert_key
    - ndpi_unset_risk
    - strptime
    - ndpi_normalize_printable_string
    - snprintf
    - strlen
    - ndpi_set_risk
    - ndpi_strdup
    - cleanupServerName
    - __get_master
    - is_flowrisk_info_enabled
    - ndpi_get_current_time
    - ndpi_set_detected_protocol
    - inet_ntop
    - timegm
    - ndpi_get_proto_category
    - ndpi_check_issuerdn_risk_exception
    - ndpi_match_hostname_protocol
    - strcmp
    - ndpi_snprintf
    - ndpi_gmtime_r
    - printf
    - ndpi_lru_add_to_cache
    - strncpy
    - strftime
    - ndpi_check_subprotocol_risk
    linkageType: ''
    returnType: void
    signature: "void processCertificateElements(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\tstruct ndpi_flow_struct *flow,\n\t\t\t\tu_int16_t p_offset,
      u_int16_t certificate_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1174,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1183,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1192,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1205,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1215,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1229,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1231,1
    - Dst: SHA1Init
      Src: /src/ndpi/src/lib/protocols/tls.c:1239,1
    - Dst: SHA1Update
      Src: /src/ndpi/src/lib/protocols/tls.c:1240,1
    - Dst: SHA1Final
      Src: /src/ndpi/src/lib/protocols/tls.c:1244,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1262,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/src/lib/protocols/tls.c:1266,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1269,1
    - Dst: processCertificateElements
      Src: /src/ndpi/src/lib/protocols/tls.c:1273,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1282,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1289
      start: 1165
    functionDepth: 7
    functionLinenumber: 1165
    functionLinenumberEnd: 1289
    functionName: processCertificate
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - printf
    - processCertificateElements
    - SHA1Update
    - SHA1Final
    - SHA1Init
    - ndpi_hash_find_entry
    linkageType: ''
    returnType: int
    signature: "int processCertificate(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1300,1
    - Dst: processClientServerHello
      Src: /src/ndpi/src/lib/protocols/tls.c:1307,1
    - Dst: ndpi_int_tls_add_connection
      Src: /src/ndpi/src/lib/protocols/tls.c:1308,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1311,1
    - Dst: checkTLSSubprotocol
      Src: /src/ndpi/src/lib/protocols/tls.c:1315,1
    - Dst: processClientServerHello
      Src: /src/ndpi/src/lib/protocols/tls.c:1321,1
    - Dst: ndpi_int_tls_add_connection
      Src: /src/ndpi/src/lib/protocols/tls.c:1322,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1325,1
    - Dst: checkTLSSubprotocol
      Src: /src/ndpi/src/lib/protocols/tls.c:1336,1
    - Dst: processCertificate
      Src: /src/ndpi/src/lib/protocols/tls.c:1346,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1349,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1354,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1366
      start: 1293
    functionDepth: 8
    functionLinenumber: 1293
    functionLinenumberEnd: 1366
    functionName: processTLSBlock
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - printf
    - processCertificate
    - checkTLSSubprotocol
    - processClientServerHello
    - ndpi_int_tls_add_connection
    linkageType: ''
    returnType: int
    signature: "int processTLSBlock(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                          struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:1373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1374
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1374
    functionName: ndpi_looks_like_tls
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - __get_master
    linkageType: ''
    returnType: void
    signature: "void ndpi_looks_like_tls(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                               struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1388,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1398,1
    - Dst: ndpi_search_tls_memory
      Src: /src/ndpi/src/lib/protocols/tls.c:1405,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/tls.c:1406,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1430,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1442,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1464,1
    - Dst: current_pkt_from_client_to_server
      Src: /src/ndpi/src/lib/protocols/tls.c:1466,1
    - Dst: ndpi_int_tls_add_connection
      Src: /src/ndpi/src/lib/protocols/tls.c:1471,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1480,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1487,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:1490,1
    - Dst: ndpi_int_tls_add_connection
      Src: /src/ndpi/src/lib/protocols/tls.c:1495,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/tls.c:1515,1
    - Dst: processTLSBlock
      Src: /src/ndpi/src/lib/protocols/tls.c:1522,1
    - Dst: ndpi_looks_like_tls
      Src: /src/ndpi/src/lib/protocols/tls.c:1523,1
    - Dst: ndpi_looks_like_tls
      Src: /src/ndpi/src/lib/protocols/tls.c:1534,1
    - Dst: ndpi_int_tls_add_connection
      Src: /src/ndpi/src/lib/protocols/tls.c:1540,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1560,1
    - Dst: memmove
      Src: /src/ndpi/src/lib/protocols/tls.c:1572,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1577,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1582,1
    - Dst: keep_extra_dissection_tcp
      Src: /src/ndpi/src/lib/protocols/tls.c:1589,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1592,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:1602,1
    - Dst: ookla_search_into_cache
      Src: /src/ndpi/src/lib/protocols/tls.c:1603,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/tls.c:1604,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:1607,1
    - Dst: ndpi_unset_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1609,1
    - Dst: is_flow_addr_informative
      Src: /src/ndpi/src/lib/protocols/tls.c:1619,1
    - Dst: switch_extra_dissection_to_tls_obfuscated_heur
      Src: /src/ndpi/src/lib/protocols/tls.c:1620,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 114
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1628
      start: 1378
    functionDepth: 9
    functionLinenumber: 1378
    functionLinenumberEnd: 1628
    functionName: ndpi_search_tls_tcp
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_looks_like_tls
    - ndpi_search_tls_memory
    - printf
    - ntohs
    - ndpi_min
    - is_flow_addr_informative
    - switch_extra_dissection_to_tls_obfuscated_heur
    - ndpi_unset_risk
    - keep_extra_dissection_tcp
    - NDPI_LOG_INFO
    - ookla_search_into_cache
    - memmove
    - ntohl
    - ndpi_int_tls_add_connection
    - ndpi_set_detected_protocol
    - processTLSBlock
    - current_pkt_from_client_to_server
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_tls_tcp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                       struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1642,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:1647,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1649,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1653,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 14
    argCount: 3
    argNames:
    - buf
    - buf_len
    - block_len
    argTypes:
    - u_int8_t*
    - u_int32_t
    - u_int32_t*
    constantsTouched: []
    func_position:
      end: 1659
      start: 1632
    functionDepth: 0
    functionLinenumber: 1632
    functionLinenumberEnd: 1659
    functionName: is_dtls
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 2
    functionsReached:
    - printf
    - ntohs
    linkageType: ''
    returnType: int
    signature: int is_dtls(const u_int8_t *buf, u_int32_t buf_len, u_int32_t *block_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1674,1
    - Dst: is_dtls
      Src: /src/ndpi/src/lib/protocols/tls.c:1686,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1695,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1709,1
    - Dst: processTLSBlock
      Src: /src/ndpi/src/lib/protocols/tls.c:1715,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1720,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1724,1
    - Dst: ndpi_search_tls_memory
      Src: /src/ndpi/src/lib/protocols/tls.c:1731,1
    - Dst: ndpi_search_tls_memory
      Src: /src/ndpi/src/lib/protocols/tls.c:1735,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1744,1
    - Dst: processTLSBlock
      Src: /src/ndpi/src/lib/protocols/tls.c:1751,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/tls.c:1753,1
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/tls.c:1754,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1762,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1772,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1780,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1787,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1791,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:1795,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:1797,1
    - Dst: ndpi_get_proto_category
      Src: /src/ndpi/src/lib/protocols/tls.c:1798,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1808,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 94
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1822
      start: 1664
    functionDepth: 9
    functionLinenumber: 1664
    functionLinenumberEnd: 1822
    functionName: ndpi_search_dtls
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - is_dtls
    - memset
    - ndpi_set_risk
    - ndpi_search_tls_memory
    - printf
    - ndpi_free
    - ndpi_get_proto_category
    - __get_master
    - ndpi_set_detected_protocol
    - processTLSBlock
    linkageType: ''
    returnType: int
    signature: "int ndpi_search_dtls(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1834
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1834
    functionName: tlsInitExtraPacketProcessing
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void tlsInitExtraPacketProcessing(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1842,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/tls.c:1847,1
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/tls.c:1848,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/tls.c:1850,1
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/tls.c:1851,1
    - Dst: tlsInitExtraPacketProcessing
      Src: /src/ndpi/src/lib/protocols/tls.c:1855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1856
      start: 1838
    functionDepth: 1
    functionLinenumber: 1838
    functionLinenumberEnd: 1856
    functionName: switch_extra_dissection_to_tls
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 4
    functionsReached:
    - memset
    - tlsInitExtraPacketProcessing
    - printf
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: "void switch_extra_dissection_to_tls(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1864,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/tls.c:1870,1
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/tls.c:1871,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/tls.c:1873,1
    - Dst: memset
      Src: /src/ndpi/src/lib/protocols/tls.c:1874,1
    - Dst: ndpi_free
      Src: /src/ndpi/src/lib/protocols/tls.c:1880,1
    - Dst: ndpi_search_tls_wrapper
      Src: /src/ndpi/src/lib/protocols/tls.c:1885,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - first_time
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - int
    constantsTouched: []
    func_position:
      end: 1886
      start: 1860
    functionDepth: 1
    functionLinenumber: 1860
    functionLinenumberEnd: 1886
    functionName: switch_to_tls
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 1
    functionsReached:
    - memset
    - ndpi_search_tls_wrapper
    - printf
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: "void switch_to_tls(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t
      \  struct ndpi_flow_struct *flow, int first_time)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/tls.c:1894,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tls.c:1894,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/tls.c:1895,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/tls.c:1895,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1897,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:1899,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:1900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1903
      start: 1890
    functionDepth: 5
    functionLinenumber: 1890
    functionLinenumberEnd: 1903
    functionName: tls_subclassify_by_alpn
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - strncmp
    - printf
    - NDPI_STATICSTRING_LEN
    - __get_master
    - ndpi_set_detected_protocol
    - strlen
    linkageType: ''
    returnType: void
    signature: "void tls_subclassify_by_alpn(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/ndpi/src/lib/protocols/tls.c:1915,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/tls.c:1918,1
    - Dst: is_a_common_alpn
      Src: /src/ndpi/src/lib/protocols/tls.c:1922,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:1923,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1928,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/tls.c:1932,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/tls.c:1934,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1938,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1940,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - alpn_start
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - char*
    constantsTouched: []
    func_position:
      end: 1947
      start: 1907
    functionDepth: 3
    functionLinenumber: 1907
    functionLinenumberEnd: 1947
    functionName: tlsCheckUncommonALPN
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - printf
    - ndpi_min
    - strncpy
    - is_flowrisk_info_enabled
    - is_a_common_alpn
    - strchr
    - strlen
    linkageType: ''
    returnType: void
    signature: "void tlsCheckUncommonALPN(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow,\n\t\t\t\t char *alpn_start)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1956,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:1961,1
    - Dst: tlsInitExtraPacketProcessing
      Src: /src/ndpi/src/lib/protocols/tls.c:1969,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:1974,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:1976,1
    - Dst: tlsInitExtraPacketProcessing
      Src: /src/ndpi/src/lib/protocols/tls.c:1979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 1980
      start: 1951
    functionDepth: 5
    functionLinenumber: 1951
    functionLinenumberEnd: 1980
    functionName: ndpi_int_tls_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 2
    functionsReached:
    - tlsInitExtraPacketProcessing
    - printf
    - __get_master
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_tls_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\tstruct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:1992,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:1995,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2033,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:2036,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2039,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2040,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2042,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2054,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:2057,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2060,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2061,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2063,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 6
    argNames:
    - ndpi_struct
    - flow
    - is_dtls
    - extension_id
    - extension_len
    - extension_payload_offset
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - int
    - u_int16_t
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2068
      start: 1984
    functionDepth: 3
    functionLinenumber: 1984
    functionLinenumberEnd: 2068
    functionName: checkExtensions
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - is_flowrisk_info_enabled
    - ndpi_set_risk
    - snprintf
    - printf
    linkageType: ''
    returnType: void
    signature: "void checkExtensions(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct * const flow, int is_dtls,\n                            u_int16_t
      extension_id, u_int16_t extension_len,\n\t\t\t    u_int16_t extension_payload_offset)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/protocols/tls.c:2075,1
    - Dst: inet_pton
      Src: /src/ndpi/src/lib/protocols/tls.c:2077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sni
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 2080
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2080
    functionName: check_sni_is_numeric_ip
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - inet_pton
    linkageType: ''
    returnType: int
    signature: int check_sni_is_numeric_ip(char *sni)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 2084
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2084
    functionName: u_int16_t_cmpfunc
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int u_int16_t_cmpfunc(const void * a, const void * b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - version
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2109
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2109
    functionName: is_grease_version
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_grease_version(u_int16_t version)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_grease_version
      Src: /src/ndpi/src/lib/protocols/tls.c:2150,1
    - Dst: ndpi_isset_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2207,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2210,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/protocols/tls.c:2217,1
    - Dst: qsort
      Src: /src/ndpi/src/lib/protocols/tls.c:2218,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2223,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2226,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2233,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2236,1
    - Dst: ndpi_sha256
      Src: /src/ndpi/src/lib/protocols/tls.c:2239,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2241,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2248,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2252,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2260,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2264,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2272,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2278,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2284,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/tls.c:2289,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2291,1
    - Dst: ndpi_sha256
      Src: /src/ndpi/src/lib/protocols/tls.c:2295,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2297,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2306,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/tls.c:2306,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 116
    argCount: 4
    argNames:
    - ndpi_struct
    - flow
    - quic_version
    - ja
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int32_t
    - union ja_info*
    constantsTouched: []
    func_position:
      end: 2308
      start: 2113
    functionDepth: 2
    functionLinenumber: 2113
    functionLinenumberEnd: 2308
    functionName: ndpi_compute_ja4
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 0
    functionsReached:
    - printf
    - is_grease_version
    - ndpi_strdup
    - ndpi_isset_risk
    - ndpi_sha256
    - qsort
    - ndpi_snprintf
    - snprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void ndpi_compute_ja4(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow,\n\t\t\t     u_int32_t quic_version,\n\t\t\t
      \    union ja_info *ja)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2325,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2351,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2354,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2367,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2384,1
    - Dst: ndpi_is_safe_ssl_cipher
      Src: /src/ndpi/src/lib/protocols/tls.c:2387,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:2388,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2392,1
    - Dst: ndpi_cipher2str
      Src: /src/ndpi/src/lib/protocols/tls.c:2392,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2393,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2395,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2403,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2409,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2414,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2424,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2425,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2434,1
    - Dst: checkExtensions
      Src: /src/ndpi/src/lib/protocols/tls.c:2437,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2441,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2444,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2452,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2457,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2470,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2486,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2491,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2499,1
    - Dst: ndpi_normalize_printable_string
      Src: /src/ndpi/src/lib/protocols/tls.c:2501,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2502,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/tls.c:2506,1
    - Dst: tlsCheckUncommonALPN
      Src: /src/ndpi/src/lib/protocols/tls.c:2511,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/tls.c:2513,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/tls.c:2514,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2525,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2532,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2540,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2547,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2566,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2569,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2575,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2588,1
    - Dst: ndpi_MD5Init
      Src: /src/ndpi/src/lib/protocols/tls.c:2591,1
    - Dst: ndpi_MD5Update
      Src: /src/ndpi/src/lib/protocols/tls.c:2592,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/tls.c:2592,1
    - Dst: ndpi_MD5Final
      Src: /src/ndpi/src/lib/protocols/tls.c:2593,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2602,1
    - Dst: is_flowrisk_info_enabled
      Src: /src/ndpi/src/lib/protocols/tls.c:2620,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:2624,1
    - Dst: ndpi_ssl_version2str
      Src: /src/ndpi/src/lib/protocols/tls.c:2624,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2627,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2629,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2642,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2646,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2651,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2659,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2670,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2678,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2683,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2717,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2741,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2752,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2767,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2774,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2778,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2791,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2794,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2798,1
    - Dst: checkExtensions
      Src: /src/ndpi/src/lib/protocols/tls.c:2800,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2805,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2820,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2829,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2838,1
    - Dst: ndpi_is_valid_hostname
      Src: /src/ndpi/src/lib/protocols/tls.c:2840,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2841,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2844,1
    - Dst: ndpi_match_hostname_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:2851,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:2851,1
    - Dst: ndpi_match_hostname_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:2857,1
    - Dst: check_sni_is_numeric_ip
      Src: /src/ndpi/src/lib/protocols/tls.c:2862,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:2863,1
    - Dst: ndpi_str_endswith
      Src: /src/ndpi/src/lib/protocols/tls.c:2866,1
    - Dst: signal_add_to_cache
      Src: /src/ndpi/src/lib/protocols/tls.c:2868,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/src/lib/protocols/tls.c:2871,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2873,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/tls.c:2878,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/tls.c:2878,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/tls.c:2879,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:2880,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:2880,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2883,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2888,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2898,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2903,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2906,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2916,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2924,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2931,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2938,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2946,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2953,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2959,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:2962,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/tls.c:2966,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/tls.c:2973,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2979,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:2994,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:3006,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3011,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3027,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3044,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3053,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3076,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3091,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3098,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:3103,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3108,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3119,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3141,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/tls.c:3144,1
    - Dst: tlsCheckUncommonALPN
      Src: /src/ndpi/src/lib/protocols/tls.c:3146,1
    - Dst: tls_subclassify_by_alpn
      Src: /src/ndpi/src/lib/protocols/tls.c:3154,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/tls.c:3159,1
    - Dst: memcpy
      Src: /src/ndpi/src/lib/protocols/tls.c:3160,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3177,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:3187,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3191,1
    - Dst: ndpi_ssl_version2str
      Src: /src/ndpi/src/lib/protocols/tls.c:3192,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3211,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/src/lib/protocols/tls.c:3216,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3220,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:3235,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/tls.c:3237,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/tls.c:3240,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:3249,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/tls.c:3250,1
    - Dst: quic_len_buffer_still_required
      Src: /src/ndpi/src/lib/protocols/tls.c:3254,1
    - Dst: quic_len
      Src: /src/ndpi/src/lib/protocols/tls.c:3256,1
    - Dst: quic_len_buffer_still_required
      Src: /src/ndpi/src/lib/protocols/tls.c:3259,1
    - Dst: quic_len
      Src: /src/ndpi/src/lib/protocols/tls.c:3261,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3265,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3277,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:3279,1
    - Dst: strlen
      Src: /src/ndpi/src/lib/protocols/tls.c:3286,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/tls.c:3290,1
    - Dst: strcmp
      Src: /src/ndpi/src/lib/protocols/tls.c:3290,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/tls.c:3291,1
    - Dst: str_contains_digit
      Src: /src/ndpi/src/lib/protocols/tls.c:3292,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/tls.c:3293,1
    - Dst: __get_master
      Src: /src/ndpi/src/lib/protocols/tls.c:3293,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3302,1
    - Dst: ndpi_compute_ja4
      Src: /src/ndpi/src/lib/protocols/tls.c:3311,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/src/lib/protocols/tls.c:3314,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/tls.c:3316,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:3320,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:3330,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:3339,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/tls.c:3344,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/protocols/tls.c:3346,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/tls.c:3351,1
    - Dst: strtok_r
      Src: /src/ndpi/src/lib/protocols/tls.c:3354,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3362,1
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3372,1
    CyclomaticComplexity: 247
    EdgeCount: 247
    ICount: 582
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - quic_version
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 3379
      start: 2312
    functionDepth: 6
    functionLinenumber: 2312
    functionLinenumberEnd: 3379
    functionName: processClientServerHello
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 2
    functionsReached:
    - strncmp
    - ndpi_ssl_version2str
    - ndpi_MD5Init
    - tlsCheckUncommonALPN
    - ndpi_normalize_printable_string
    - ndpi_is_valid_hostname
    - snprintf
    - strlen
    - ndpi_set_risk
    - ntohs
    - ndpi_strdup
    - NDPI_ARRAY_LENGTH
    - __get_master
    - ndpi_check_dga_name
    - is_flowrisk_info_enabled
    - checkExtensions
    - check_sni_is_numeric_ip
    - quic_len
    - ndpi_set_detected_protocol
    - ndpi_str_endswith
    - strtok_r
    - ndpi_MD5Update
    - ndpi_match_hostname_protocol
    - strcmp
    - ndpi_is_safe_ssl_cipher
    - ndpi_hash_find_entry
    - ndpi_snprintf
    - signal_add_to_cache
    - memcpy
    - printf
    - tls_subclassify_by_alpn
    - ndpi_min
    - quic_len_buffer_still_required
    - ndpi_MD5Final
    - ndpi_compute_ja4
    - str_contains_digit
    - ndpi_cipher2str
    linkageType: ''
    returnType: int
    signature: "int processClientServerHello(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \    struct ndpi_flow_struct *flow, u_int32_t quic_version)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/src/lib/protocols/tls.c:3389,1
    - Dst: ndpi_search_dtls
      Src: /src/ndpi/src/lib/protocols/tls.c:3405,1
    - Dst: ndpi_search_tls_tcp
      Src: /src/ndpi/src/lib/protocols/tls.c:3407,1
    - Dst: ndpi_seen_flow_beginning
      Src: /src/ndpi/src/lib/protocols/tls.c:3419,1
    - Dst: is_flow_addr_informative
      Src: /src/ndpi/src/lib/protocols/tls.c:3421,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/src/lib/protocols/tls.c:3422,1
    - Dst: tls_obfuscated_heur_search_again
      Src: /src/ndpi/src/lib/protocols/tls.c:3427,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/tls.c:3429,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 3431
      start: 3383
    functionDepth: 10
    functionLinenumber: 3383
    functionLinenumberEnd: 3431
    functionName: ndpi_search_tls_wrapper
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 1
    functionsReached:
    - ndpi_seen_flow_beginning
    - printf
    - is_flow_addr_informative
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_search_tls_tcp
    - ndpi_calloc
    - tls_obfuscated_heur_search_again
    - ndpi_search_dtls
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_tls_wrapper(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/tls.c:3436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 3442
      start: 3435
    functionDepth: 3
    functionLinenumber: 3435
    functionLinenumberEnd: 3442
    functionName: init_tls_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/tls.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_tls_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: ndpi_int_ethersbus_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/ethersbus.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_ethersbus_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                              struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:46,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:49,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:49,1
    - Dst: ndpi_crc16_xmodem
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:52,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:53,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:53,1
    - Dst: ndpi_int_ethersbus_add_connection
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:55,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: ndpi_search_ethersbus
    functionSourceFile: /src/ndpi/src/lib/protocols/ethersbus.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - ndpi_crc16_xmodem
    - NDPI_LOG_DBG
    - ndpi_int_ethersbus_add_connection
    - ntohl
    - get_u_int32_t
    - htons
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_ethersbus(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/ethersbus.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: init_ethersbus_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/ethersbus.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_ethersbus_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: rmcp_header
    functionSourceFile: /src/ndpi/src/lib/protocols/rmcp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON rmcp_header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/rmcp.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: ndpi_int_rmcp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/rmcp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_rmcp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                         struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rmcp.c:58,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rmcp.c:61,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rmcp.c:68,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rmcp.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rmcp.c:81,1
    - Dst: ndpi_int_rmcp_add_connection
      Src: /src/ndpi/src/lib/protocols/rmcp.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 86
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 86
    functionName: ndpi_search_rmcp
    functionSourceFile: /src/ndpi/src/lib/protocols/rmcp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_rmcp_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_rmcp(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/rmcp.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: init_rmcp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/rmcp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_rmcp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:48,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:52,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:56,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:60,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:65,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:67,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:77,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:80,1
    - Dst: ndpi_entropy
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:85,1
    - Dst: ndpi_entropy2risk
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:87,1
    - Dst: icmp4_checksum
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:90,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:93,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:101,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:105,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:109,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:113,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:117,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:121,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:125,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:130,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:133,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:143,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:146,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:153,1
    - Dst: set_protocol_and_bmask
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:157,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:161,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 162
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 162
    functionName: ndpi_search_in_non_tcp_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/non_tcp_udp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_entropy2risk
    - NDPI_EXCLUDE_DISSECTOR
    - icmp4_checksum
    - ndpi_entropy
    - set_protocol_and_bmask
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_in_non_tcp_udp(struct ndpi_detection_module_struct\n\t\t\t\t
      \      *ndpi_struct, struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/non_tcp_udp.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: init_non_tcp_udp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/non_tcp_udp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_non_tcp_udp_dissector(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/soap.c:31,1
    - Dst: ndpi_set_detected_protocol_keeping_master
      Src: /src/ndpi/src/lib/protocols/soap.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: ndpi_int_soap_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/soap.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol_keeping_master
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_soap_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n                                         struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/soap.c:41,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/soap.c:45,1
    - Dst: LINE_STARTS
      Src: /src/ndpi/src/lib/protocols/soap.c:54,1
    - Dst: ndpi_int_soap_add_connection
      Src: /src/ndpi/src/lib/protocols/soap.c:56,1
    - Dst: ndpi_int_soap_add_connection
      Src: /src/ndpi/src/lib/protocols/soap.c:66,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/soap.c:69,1
    - Dst: strncmp
      Src: /src/ndpi/src/lib/protocols/soap.c:76,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 81
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 81
    functionName: ndpi_search_soap
    functionSourceFile: /src/ndpi/src/lib/protocols/soap.c
    functionUses: 0
    functionsReached:
    - strncmp
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - LINE_STARTS
    - ndpi_int_soap_add_connection
    - ndpi_parse_packet_line_info
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_soap(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                            struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/soap.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: init_soap_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/soap.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_soap_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/corba.c:31,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/corba.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: ndpi_int_corba_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/corba.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_corba_add_connection(struct ndpi_detection_module_struct\n
      \                                         *ndpi_struct, struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/corba.c:38,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/corba.c:43,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/corba.c:44,1
    - Dst: ndpi_int_corba_add_connection
      Src: /src/ndpi/src/lib/protocols/corba.c:46,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/corba.c:52,1
    - Dst: ndpi_int_corba_add_connection
      Src: /src/ndpi/src/lib/protocols/corba.c:53,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/corba.c:58,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 59
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 59
    functionName: ndpi_search_corba
    functionSourceFile: /src/ndpi/src/lib/protocols/corba.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ndpi_int_corba_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: void ndpi_search_corba(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/corba.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: init_corba_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/corba.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_corba_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/megaco.c:34,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/megaco.c:44,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/megaco.c:45,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/megaco.c:50,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: ndpi_search_megaco
    functionSourceFile: /src/ndpi/src/lib/protocols/megaco.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_megaco(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/megaco.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: init_megaco_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/megaco.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_megaco_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/rtsp.c:36,1
    - Dst: ndpi_set_detected_protocol_keeping_master
      Src: /src/ndpi/src/lib/protocols/rtsp.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: ndpi_int_rtsp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/rtsp.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol_keeping_master
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_rtsp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtsp.c:47,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/rtsp.c:51,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/rtsp.c:55,1
    - Dst: LINE_STARTS
      Src: /src/ndpi/src/lib/protocols/rtsp.c:56,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/rtsp.c:57,1
    - Dst: LINE_ENDS
      Src: /src/ndpi/src/lib/protocols/rtsp.c:58,1
    - Dst: ndpi_int_rtsp_add_connection
      Src: /src/ndpi/src/lib/protocols/rtsp.c:61,1
    - Dst: ndpi_user_agent_set
      Src: /src/ndpi/src/lib/protocols/rtsp.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtsp.c:70,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 71
    functionName: ndpi_search_rtsp_tcp_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/rtsp.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_user_agent_set
    - NDPI_LOG_DBG
    - LINE_STARTS
    - ndpi_int_rtsp_add_connection
    - ndpi_parse_packet_line_info
    - LINE_ENDS
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_rtsp_tcp_udp(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t     struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/rtsp.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: init_rtsp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/rtsp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_rtsp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/socks45.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ndpi_int_socks_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/socks45.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_socks_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/socks45.c:45,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/socks45.c:50,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/socks45.c:56,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/socks45.c:64,1
    - Dst: ndpi_int_socks_add_connection
      Src: /src/ndpi/src/lib/protocols/socks45.c:65,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/socks45.c:67,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 71
    functionName: ndpi_check_socks4
    functionSourceFile: /src/ndpi/src/lib/protocols/socks45.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_int_socks_add_connection
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: void
    signature: void ndpi_check_socks4(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/socks45.c:80,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/socks45.c:84,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/socks45.c:91,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/socks45.c:100,1
    - Dst: ndpi_int_socks_add_connection
      Src: /src/ndpi/src/lib/protocols/socks45.c:101,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/socks45.c:103,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 108
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 108
    functionName: ndpi_check_socks5
    functionSourceFile: /src/ndpi/src/lib/protocols/socks45.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_int_socks_add_connection
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: void
    signature: void ndpi_check_socks5(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/socks45.c:112,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/socks45.c:115,1
    - Dst: ndpi_check_socks4
      Src: /src/ndpi/src/lib/protocols/socks45.c:119,1
    - Dst: ndpi_check_socks5
      Src: /src/ndpi/src/lib/protocols/socks45.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 7
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: ndpi_search_socks
    functionSourceFile: /src/ndpi/src/lib/protocols/socks45.c
    functionUses: 0
    functionsReached:
    - ndpi_check_socks5
    - ndpi_check_socks4
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: void ndpi_search_socks(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/socks45.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: init_socks_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/socks45.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_socks_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/atg.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: ndpi_int_atg_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/atg.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_atg_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t\t*ndpi_struct,
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/atg.c:39,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/atg.c:42,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/atg.c:47,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/atg.c:48,1
    - Dst: ndpi_int_atg_add_connection
      Src: /src/ndpi/src/lib/protocols/atg.c:49,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/atg.c:55,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: ndpi_search_atg
    functionSourceFile: /src/ndpi/src/lib/protocols/atg.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - ndpi_int_atg_add_connection
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_atg(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/atg.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: init_atg_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/atg.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_atg_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/rsh.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: ndpi_int_rsh_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/rsh.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_rsh_add_connection(struct ndpi_detection_module_struct
      * ndpi_struct,\n                                        struct ndpi_flow_struct
      * flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_int_rsh_add_connection
      Src: /src/ndpi/src/lib/protocols/rsh.c:53,1
    - Dst: ndpi_isdigit
      Src: /src/ndpi/src/lib/protocols/rsh.c:72,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rsh.c:74,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rsh.c:79,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rsh.c:87,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/rsh.c:97,1
    - Dst: memchr
      Src: /src/ndpi/src/lib/protocols/rsh.c:98,1
    - Dst: ndpi_is_printable_buffer
      Src: /src/ndpi/src/lib/protocols/rsh.c:103,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rsh.c:106,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/rsh.c:112,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rsh.c:114,1
    - Dst: ndpi_int_rsh_add_connection
      Src: /src/ndpi/src/lib/protocols/rsh.c:123,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/rsh.c:125,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/rsh.c:126,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/rsh.c:126,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/rsh.c:128,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/rsh.c:129,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/rsh.c:129,1
    - Dst: strncpy
      Src: /src/ndpi/src/lib/protocols/rsh.c:131,1
    - Dst: ndpi_min
      Src: /src/ndpi/src/lib/protocols/rsh.c:132,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/rsh.c:132,1
    - Dst: snprintf
      Src: /src/ndpi/src/lib/protocols/rsh.c:137,1
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/src/lib/protocols/rsh.c:137,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/rsh.c:142,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rsh.c:147,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 150
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 150
    functionName: ndpi_search_rsh
    functionSourceFile: /src/ndpi/src/lib/protocols/rsh.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_min
    - NDPI_ARRAY_LENGTH
    - memchr
    - strncpy
    - ndpi_isdigit
    - ndpi_is_printable_buffer
    - ndpi_int_rsh_add_connection
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_rsh(struct ndpi_detection_module_struct * ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/rsh.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: init_rsh_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/rsh.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_rsh_dissector(struct ndpi_detection_module_struct * ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/i3d.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/i3d.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ndpi_int_i3d_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/i3d.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_i3d_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                        struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/i3d.c:44,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/i3d.c:53,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/i3d.c:57,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/i3d.c:57,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/i3d.c:58,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/i3d.c:58,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/i3d.c:59,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/i3d.c:59,1
    - Dst: ndpi_int_i3d_add_connection
      Src: /src/ndpi/src/lib/protocols/i3d.c:61,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/i3d.c:65,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/i3d.c:65,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/i3d.c:66,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/i3d.c:66,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/i3d.c:67,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/i3d.c:67,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/i3d.c:68,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/i3d.c:68,1
    - Dst: ndpi_int_i3d_add_connection
      Src: /src/ndpi/src/lib/protocols/i3d.c:70,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/i3d.c:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 76
    functionName: ndpi_search_i3d
    functionSourceFile: /src/ndpi/src/lib/protocols/i3d.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - ndpi_int_i3d_add_connection
    - NDPI_LOG_DBG
    - ntohl
    - get_u_int32_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_i3d(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                           struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/i3d.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: init_i3d_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/i3d.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_i3d_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: ndpi_int_dhcpv6_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/dhcpv6.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_dhcpv6_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:44,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:47,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:47,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:48,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:48,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:51,1
    - Dst: ndpi_int_dhcpv6_add_connection
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:52,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:56,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 57
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 57
    functionName: ndpi_search_dhcpv6_udp
    functionSourceFile: /src/ndpi/src/lib/protocols/dhcpv6.c
    functionUses: 0
    functionsReached:
    - ndpi_int_dhcpv6_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_search_dhcpv6_udp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dhcpv6.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: init_dhcpv6_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dhcpv6.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dhcpv6_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/bgp.c:36,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/bgp.c:38,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/bgp.c:44,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/bgp.c:45,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bgp.c:46,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/bgp.c:46,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bgp.c:48,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/bgp.c:49,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bgp.c:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 55
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 55
    functionName: ndpi_search_bgp
    functionSourceFile: /src/ndpi/src/lib/protocols/bgp.c
    functionUses: 0
    functionsReached:
    - ntohs
    - NDPI_EXCLUDE_DISSECTOR
    - get_u_int16_t
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - get_u_int64_t
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_search_bgp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/bgp.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: init_bgp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/bgp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_bgp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/nomachine.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/nomachine.c:36,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/nomachine.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: ndpi_int_nomachine_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/nomachine.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_nomachine_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                              struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/nomachine.c:46,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/nomachine.c:53,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/nomachine.c:53,1
    - Dst: ndpi_int_nomachine_add_connection
      Src: /src/ndpi/src/lib/protocols/nomachine.c:55,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/nomachine.c:61,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/nomachine.c:61,1
    - Dst: le16toh
      Src: /src/ndpi/src/lib/protocols/nomachine.c:62,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/nomachine.c:62,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/nomachine.c:63,1
    - Dst: ndpi_int_nomachine_add_connection
      Src: /src/ndpi/src/lib/protocols/nomachine.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/nomachine.c:70,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 71
    functionName: ndpi_search_nomachine
    functionSourceFile: /src/ndpi/src/lib/protocols/nomachine.c
    functionUses: 0
    functionsReached:
    - le16toh
    - get_u_int16_t
    - memcmp
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - ndpi_int_nomachine_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_nomachine(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                                 struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/nomachine.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: init_nomachine_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/nomachine.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_nomachine_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/rtmp.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: ndpi_int_rtmp_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/rtmp.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: void ndpi_int_rtmp_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_seen_flow_beginning
      Src: /src/ndpi/src/lib/protocols/rtmp.c:48,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtmp.c:49,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/rtmp.c:56,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/rtmp.c:64,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/rtmp.c:77,1
    - Dst: ndpi_int_rtmp_add_connection
      Src: /src/ndpi/src/lib/protocols/rtmp.c:78,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/rtmp.c:83,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 84
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 84
    functionName: ndpi_check_rtmp
    functionSourceFile: /src/ndpi/src/lib/protocols/rtmp.c
    functionUses: 0
    functionsReached:
    - ndpi_int_rtmp_add_connection
    - ndpi_seen_flow_beginning
    - NDPI_LOG_DBG2
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_INFO
    linkageType: ''
    returnType: void
    signature: void ndpi_check_rtmp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/rtmp.c:88,1
    - Dst: ndpi_check_rtmp
      Src: /src/ndpi/src/lib/protocols/rtmp.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 7
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: ndpi_search_rtmp
    functionSourceFile: /src/ndpi/src/lib/protocols/rtmp.c
    functionUses: 0
    functionsReached:
    - ndpi_check_rtmp
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_rtmp(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/rtmp.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: init_rtmp_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/rtmp.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_rtmp_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/spotify.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ndpi_int_spotify_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/spotify.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_spotify_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct,\n\t\t\t\t\t    struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/spotify.c:45,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/spotify.c:50,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/spotify.c:51,1
    - Dst: ndpi_int_spotify_add_connection
      Src: /src/ndpi/src/lib/protocols/spotify.c:52,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/spotify.c:63,1
    - Dst: ndpi_int_spotify_add_connection
      Src: /src/ndpi/src/lib/protocols/spotify.c:64,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/spotify.c:68,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: ndpi_check_spotify
    functionSourceFile: /src/ndpi/src/lib/protocols/spotify.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ndpi_int_spotify_add_connection
    - memcmp
    - NDPI_LOG_INFO
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_check_spotify(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/spotify.c:73,1
    - Dst: ndpi_check_spotify
      Src: /src/ndpi/src/lib/protocols/spotify.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 7
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: ndpi_search_spotify
    functionSourceFile: /src/ndpi/src/lib/protocols/spotify.c
    functionUses: 0
    functionsReached:
    - ndpi_check_spotify
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: void
    signature: void ndpi_search_spotify(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/spotify.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: init_spotify_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/spotify.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_spotify_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: dicom_header
    functionSourceFile: /src/ndpi/src/lib/protocols/dicom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON dicom_header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/dicom.c:38,1
    - Dst: ntohl
      Src: /src/ndpi/src/lib/protocols/dicom.c:45,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/dicom.c:50,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dicom.c:54,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/dicom.c:56,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 57
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 57
    functionName: ndpi_search_dicom
    functionSourceFile: /src/ndpi/src/lib/protocols/dicom.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - ntohl
    - NDPI_LOG_DBG
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_dicom(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/dicom.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: init_dicom_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/dicom.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_dicom_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/munin.c:32,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/munin.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: ndpi_int_munin_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/munin.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_munin_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                          struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/munin.c:48,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/munin.c:51,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/munin.c:53,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/munin.c:57,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/munin.c:57,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/munin.c:59,1
    - Dst: ndpi_int_munin_add_connection
      Src: /src/ndpi/src/lib/protocols/munin.c:63,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/munin.c:67,1
    - Dst: ndpi_hostname_sni_set
      Src: /src/ndpi/src/lib/protocols/munin.c:74,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/munin.c:74,1
    - Dst: ndpi_set_risk
      Src: /src/ndpi/src/lib/protocols/munin.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 78
      start: 42
    functionDepth: 6
    functionLinenumber: 42
    functionLinenumberEnd: 78
    functionName: ndpi_search_munin
    functionSourceFile: /src/ndpi/src/lib/protocols/munin.c
    functionUses: 0
    functionsReached:
    - ndpi_set_risk
    - ndpi_hostname_sni_set
    - NDPI_EXCLUDE_DISSECTOR
    - memcmp
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - ndpi_int_munin_add_connection
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_munin(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/munin.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: init_munin_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/munin.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_munin_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/iqiyi.c:35,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/iqiyi.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ndpi_int_iqiyi_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/iqiyi.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_iqiyi_add_connection(struct ndpi_detection_module_struct
      *ndpi_struct, \n                                          struct ndpi_flow_struct
      *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/iqiyi.c:44,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/src/lib/protocols/iqiyi.c:47,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/iqiyi.c:47,1
    - Dst: ndpi_int_iqiyi_add_connection
      Src: /src/ndpi/src/lib/protocols/iqiyi.c:48,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/iqiyi.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: ndpi_search_iqiyi
    functionSourceFile: /src/ndpi/src/lib/protocols/iqiyi.c
    functionUses: 0
    functionsReached:
    - ndpi_int_iqiyi_add_connection
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_STATICSTRING_LEN
    - NDPI_LOG_DBG
    - ndpi_memmem
    linkageType: ''
    returnType: void
    signature: void ndpi_search_iqiyi(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/iqiyi.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: init_iqiyi_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/iqiyi.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_iqiyi_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/wireguard.c:49,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/wireguard.c:51,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/wireguard.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ndpi_struct
    - flow
    - app_protocol
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: ndpi_int_wireguard_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/wireguard.c
    functionUses: 0
    functionsReached:
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_wireguard_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                              struct ndpi_flow_struct
      * const flow,\n                                              u_int16_t app_protocol)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/wireguard.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/wireguard.c:85,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/wireguard.c:92,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/wireguard.c:118,1
    - Dst: ndpi_int_wireguard_add_connection
      Src: /src/ndpi/src/lib/protocols/wireguard.c:127,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/wireguard.c:139,1
    - Dst: ndpi_int_wireguard_add_connection
      Src: /src/ndpi/src/lib/protocols/wireguard.c:144,1
    - Dst: ndpi_int_wireguard_add_connection
      Src: /src/ndpi/src/lib/protocols/wireguard.c:146,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/wireguard.c:148,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/wireguard.c:160,1
    - Dst: ndpi_int_wireguard_add_connection
      Src: /src/ndpi/src/lib/protocols/wireguard.c:162,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/wireguard.c:164,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/wireguard.c:175,1
    - Dst: ndpi_int_wireguard_add_connection
      Src: /src/ndpi/src/lib/protocols/wireguard.c:190,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/wireguard.c:192,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/wireguard.c:197,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 199
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 199
    functionName: ndpi_search_wireguard
    functionSourceFile: /src/ndpi/src/lib/protocols/wireguard.c
    functionUses: 0
    functionsReached:
    - ndpi_int_wireguard_add_connection
    - get_u_int32_t
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_wireguard(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t\t
      \ struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/wireguard.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: init_wireguard_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/wireguard.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_wireguard_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zattoo.c:42,1
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/zattoo.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 48
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 48
    functionName: ndpi_int_zattoo_user_agent_set
    functionSourceFile: /src/ndpi/src/lib/protocols/zattoo.c
    functionUses: 0
    functionsReached:
    - memcmp
    - NDPI_LOG_DBG
    linkageType: ''
    returnType: __mingw_forceinline
    signature: __mingw_forceinline ndpi_int_zattoo_user_agent_set(struct ndpi_detection_module_struct
      *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/zattoo.c:59,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zattoo.c:63,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zattoo.c:65,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zattoo.c:69,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zattoo.c:71,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zattoo.c:75,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zattoo.c:76,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/zattoo.c:78,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zattoo.c:81,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zattoo.c:83,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zattoo.c:88,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zattoo.c:88,1
    - Dst: NDPI_STATICSTRING_LEN
      Src: /src/ndpi/src/lib/protocols/zattoo.c:88,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/zattoo.c:91,1
    - Dst: ndpi_int_zattoo_user_agent_set
      Src: /src/ndpi/src/lib/protocols/zattoo.c:93,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zattoo.c:95,1
    - Dst: memcmp
      Src: /src/ndpi/src/lib/protocols/zattoo.c:99,1
    - Dst: ndpi_parse_packet_line_info
      Src: /src/ndpi/src/lib/protocols/zattoo.c:101,1
    - Dst: ndpi_bytestream_to_ipv4
      Src: /src/ndpi/src/lib/protocols/zattoo.c:108,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zattoo.c:125,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/zattoo.c:138,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zattoo.c:144,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/zattoo.c:153,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/zattoo.c:165,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zattoo.c:170,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/zattoo.c:176,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/zattoo.c:184,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/zattoo.c:184,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/zattoo.c:185,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/zattoo.c:185,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/zattoo.c:186,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/zattoo.c:186,1
    - Dst: get_u_int16_t
      Src: /src/ndpi/src/lib/protocols/zattoo.c:187,1
    - Dst: htons
      Src: /src/ndpi/src/lib/protocols/zattoo.c:187,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/zattoo.c:188,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/zattoo.c:188,1
    - Dst: get_u_int32_t
      Src: /src/ndpi/src/lib/protocols/zattoo.c:189,1
    - Dst: htonl
      Src: /src/ndpi/src/lib/protocols/zattoo.c:189,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/zattoo.c:193,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/zattoo.c:197,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/zattoo.c:201,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/zattoo.c:207,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 85
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 208
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 208
    functionName: ndpi_search_zattoo
    functionSourceFile: /src/ndpi/src/lib/protocols/zattoo.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_DBG2
    - ndpi_bytestream_to_ipv4
    - memcmp
    - NDPI_STATICSTRING_LEN
    - get_u_int16_t
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - htonl
    - NDPI_LOG_INFO
    - ndpi_int_zattoo_user_agent_set
    - ndpi_parse_packet_line_info
    - get_u_int32_t
    - htons
    linkageType: ''
    returnType: void
    signature: void ndpi_search_zattoo(struct ndpi_detection_module_struct *ndpi_struct,
      struct ndpi_flow_struct *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/zattoo.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: init_zattoo_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/zattoo.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_zattoo_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: bvlc_header
    functionSourceFile: /src/ndpi/src/lib/protocols/bacnet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON bvlc_header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/bacnet.c:43,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/bacnet.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: ndpi_int_bacnet_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/bacnet.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_bacnet_add_connection(struct ndpi_detection_module_struct
      * const ndpi_struct,\n                                           struct ndpi_flow_struct
      * const flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/bacnet.c:59,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bacnet.c:63,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bacnet.c:69,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bacnet.c:75,1
    - Dst: ntohs
      Src: /src/ndpi/src/lib/protocols/bacnet.c:79,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/bacnet.c:81,1
    - Dst: ndpi_int_bacnet_add_connection
      Src: /src/ndpi/src/lib/protocols/bacnet.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 86
      start: 53
    functionDepth: 6
    functionLinenumber: 53
    functionLinenumberEnd: 86
    functionName: ndpi_search_bacnet
    functionSourceFile: /src/ndpi/src/lib/protocols/bacnet.c
    functionUses: 0
    functionsReached:
    - ndpi_int_bacnet_add_connection
    - ntohs
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_bacnet(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                              struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/bacnet.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: init_bacnet_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/bacnet.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_bacnet_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/steam.c:37,1
    - Dst: le64toh
      Src: /src/ndpi/src/lib/protocols/steam.c:42,1
    - Dst: get_u_int64_t
      Src: /src/ndpi/src/lib/protocols/steam.c:42,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/steam.c:44,1
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/steam.c:45,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/steam.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: ndpi_search_steam
    functionSourceFile: /src/ndpi/src/lib/protocols/steam.c
    functionUses: 0
    functionsReached:
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    - le64toh
    - get_u_int64_t
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_steam(struct ndpi_detection_module_struct *ndpi_struct,\n
      \                             struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/steam.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: init_steam_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/steam.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_steam_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_set_detected_protocol
      Src: /src/ndpi/src/lib/protocols/noe.c:36,1
    - Dst: NDPI_LOG_INFO
      Src: /src/ndpi/src/lib/protocols/noe.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: ndpi_int_noe_add_connection
    functionSourceFile: /src/ndpi/src/lib/protocols/noe.c
    functionUses: 0
    functionsReached:
    - NDPI_LOG_INFO
    - ndpi_set_detected_protocol
    linkageType: ''
    returnType: void
    signature: "void ndpi_int_noe_add_connection(struct ndpi_detection_module_struct\n\t\t\t\t\t*ndpi_struct,
      struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_LOG_DBG
      Src: /src/ndpi/src/lib/protocols/noe.c:45,1
    - Dst: NDPI_LOG_DBG2
      Src: /src/ndpi/src/lib/protocols/noe.c:48,1
    - Dst: ndpi_int_noe_add_connection
      Src: /src/ndpi/src/lib/protocols/noe.c:51,1
    - Dst: ndpi_int_noe_add_connection
      Src: /src/ndpi/src/lib/protocols/noe.c:58,1
    - Dst: ndpi_int_noe_add_connection
      Src: /src/ndpi/src/lib/protocols/noe.c:65,1
    - Dst: NDPI_EXCLUDE_DISSECTOR
      Src: /src/ndpi/src/lib/protocols/noe.c:70,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 18
    argCount: 2
    argNames:
    - ndpi_struct
    - flow
    argTypes:
    - struct ndpi_detection_module_struct*
    - struct ndpi_flow_struct*
    constantsTouched: []
    func_position:
      end: 71
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 71
    functionName: ndpi_search_noe
    functionSourceFile: /src/ndpi/src/lib/protocols/noe.c
    functionUses: 0
    functionsReached:
    - ndpi_int_noe_add_connection
    - NDPI_LOG_DBG
    - NDPI_EXCLUDE_DISSECTOR
    - NDPI_LOG_DBG2
    linkageType: ''
    returnType: void
    signature: "void ndpi_search_noe(struct ndpi_detection_module_struct *ndpi_struct,\n\t\t\t
      \   struct ndpi_flow_struct *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_dissector
      Src: /src/ndpi/src/lib/protocols/noe.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ndpi_struct
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: init_noe_dissector
    functionSourceFile: /src/ndpi/src/lib/protocols/noe.c
    functionUses: 1
    functionsReached:
    - register_dissector
    linkageType: ''
    returnType: void
    signature: void init_noe_dissector(struct ndpi_detection_module_struct *ndpi_struct)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - argv
    - d
    argTypes:
    - char**
    - struct _getopt_data_a*
    constantsTouched: []
    func_position:
      end: 110
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 110
    functionName: exchange_a
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exchange_a(char **argv, struct _getopt_data_a *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/ndpi/windows/src/getopt.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - optstring
    - d
    - posixly_correct
    argTypes:
    - char*
    - struct _getopt_data_a*
    - int
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: _getopt_initialize_a
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 1
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char *_getopt_initialize_a (const char *optstring, struct _getopt_data_a
      *d, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_initialize_a
      Src: /src/ndpi/windows/src/getopt.c:142,1
    - Dst: exchange_a
      Src: /src/ndpi/windows/src/getopt.c:158,1
    - Dst: strcmp
      Src: /src/ndpi/windows/src/getopt.c:165,1
    - Dst: exchange_a
      Src: /src/ndpi/windows/src/getopt.c:169,1
    - Dst: strchr
      Src: /src/ndpi/windows/src/getopt.c:190,1
    - Dst: strncmp
      Src: /src/ndpi/windows/src/getopt.c:207,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:209,1
    - Dst: alloca
      Src: /src/ndpi/windows/src/getopt.c:223,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:237,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:240,1
    - Dst: fputc
      Src: /src/ndpi/windows/src/getopt.c:244,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:246,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:265,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:269,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:272,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:285,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:287,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:292,1
    - Dst: strchr
      Src: /src/ndpi/windows/src/getopt.c:302,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:308,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:312,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:330,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:355,1
    - Dst: strncmp
      Src: /src/ndpi/windows/src/getopt.c:368,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:370,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:389,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:391,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:406,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:408,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:420,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:422,1
    - Dst: strlen
      Src: /src/ndpi/windows/src/getopt.c:428,1
    - Dst: fprintf
      Src: /src/ndpi/windows/src/getopt.c:466,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 259
    argCount: 8
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - longind
    - long_only
    - d
    - posixly_correct
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    - int
    - struct _getopt_data_a*
    - int
    constantsTouched: []
    func_position:
      end: 481
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 481
    functionName: _getopt_internal_r_a
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 3
    functionsReached:
    - strncmp
    - exchange_a
    - alloca
    - fprintf
    - fputc
    - strcmp
    - _getopt_initialize_a
    - strchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int _getopt_internal_r_a (int argc, char *const *argv, const char *optstring,
      const struct option_a *longopts, int *longind, int long_only, struct _getopt_data_a
      *d, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_a
      Src: /src/ndpi/windows/src/getopt.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - longind
    - long_only
    - posixly_correct
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 492
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 492
    functionName: _getopt_internal_a
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 3
    functionsReached:
    - _getopt_internal_r_a
    linkageType: ''
    returnType: int
    signature: int _getopt_internal_a (int argc, char *const *argv, const char *optstring,
      const struct option_a *longopts, int *longind, int long_only, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_a
      Src: /src/ndpi/windows/src/getopt.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - argc
    - argv
    - optstring
    argTypes:
    - int
    - char**
    - char*
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: getopt_a
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_a
    linkageType: ''
    returnType: int
    signature: int getopt_a (int argc, char *const *argv, const char *optstring)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_a
      Src: /src/ndpi/windows/src/getopt.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: getopt_long_a
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_a
    linkageType: ''
    returnType: int
    signature: int getopt_long_a (int argc, char *const *argv, const char *options,
      const struct option_a *long_options, int *opt_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_a
      Src: /src/ndpi/windows/src/getopt.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: getopt_long_only_a
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_a
    linkageType: ''
    returnType: int
    signature: int getopt_long_only_a (int argc, char *const *argv, const char *options,
      const struct option_a *long_options, int *opt_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_a
      Src: /src/ndpi/windows/src/getopt.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    - d
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    - struct _getopt_data_a*
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: _getopt_long_r_a
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_a
    linkageType: ''
    returnType: int
    signature: int _getopt_long_r_a (int argc, char *const *argv, const char *options,
      const struct option_a *long_options, int *opt_index, struct _getopt_data_a *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_a
      Src: /src/ndpi/windows/src/getopt.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    - d
    argTypes:
    - int
    - char**
    - char*
    - struct option_a*
    - int*
    - struct _getopt_data_a*
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: _getopt_long_only_r_a
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_a
    linkageType: ''
    returnType: int
    signature: int _getopt_long_only_r_a (int argc, char *const *argv, const char
      *options, const struct option_a *long_options, int *opt_index, struct _getopt_data_a
      *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - argv
    - d
    argTypes:
    - wchar_t**
    - struct _getopt_data_w*
    constantsTouched: []
    func_position:
      end: 570
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 570
    functionName: exchange_w
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exchange_w(wchar_t **argv, struct _getopt_data_w *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/ndpi/windows/src/getopt.c:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - optstring
    - d
    - posixly_correct
    argTypes:
    - wchar_t*
    - struct _getopt_data_w*
    - int
    constantsTouched: []
    func_position:
      end: 591
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 591
    functionName: _getopt_initialize_w
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 1
    functionsReached:
    - _wgetenv
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *_getopt_initialize_w (const wchar_t *optstring, struct _getopt_data_w
      *d, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_initialize_w
      Src: /src/ndpi/windows/src/getopt.c:602,1
    - Dst: exchange_w
      Src: /src/ndpi/windows/src/getopt.c:618,1
    - Dst: wcscmp
      Src: /src/ndpi/windows/src/getopt.c:625,1
    - Dst: exchange_w
      Src: /src/ndpi/windows/src/getopt.c:629,1
    - Dst: wcschr
      Src: /src/ndpi/windows/src/getopt.c:650,1
    - Dst: wcsncmp
      Src: /src/ndpi/windows/src/getopt.c:667,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:669,1
    - Dst: alloca
      Src: /src/ndpi/windows/src/getopt.c:683,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:697,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:700,1
    - Dst: fputwc
      Src: /src/ndpi/windows/src/getopt.c:704,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:706,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:725,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:729,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:732,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:745,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:747,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:752,1
    - Dst: wcschr
      Src: /src/ndpi/windows/src/getopt.c:762,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:768,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:772,1
    - Dst: wcschr
      Src: /src/ndpi/windows/src/getopt.c:783,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:790,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:815,1
    - Dst: wcsncmp
      Src: /src/ndpi/windows/src/getopt.c:828,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:830,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:849,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:851,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:866,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:868,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:880,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:882,1
    - Dst: wcslen
      Src: /src/ndpi/windows/src/getopt.c:888,1
    - Dst: fwprintf
      Src: /src/ndpi/windows/src/getopt.c:926,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 259
    argCount: 8
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - longind
    - long_only
    - d
    - posixly_correct
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    - int
    - struct _getopt_data_w*
    - int
    constantsTouched: []
    func_position:
      end: 941
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 941
    functionName: _getopt_internal_r_w
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 3
    functionsReached:
    - alloca
    - wcschr
    - fputwc
    - wcscmp
    - wcslen
    - fwprintf
    - _getopt_initialize_w
    - exchange_w
    - wcsncmp
    linkageType: ''
    returnType: int
    signature: int _getopt_internal_r_w (int argc, wchar_t *const *argv, const wchar_t
      *optstring, const struct option_w *longopts, int *longind, int long_only, struct
      _getopt_data_w *d, int posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_w
      Src: /src/ndpi/windows/src/getopt.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - longind
    - long_only
    - posixly_correct
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    - int
    - int
    constantsTouched: []
    func_position:
      end: 952
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 952
    functionName: _getopt_internal_w
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 3
    functionsReached:
    - _getopt_internal_r_w
    linkageType: ''
    returnType: int
    signature: int _getopt_internal_w (int argc, wchar_t *const *argv, const wchar_t
      *optstring, const struct option_w *longopts, int *longind, int long_only, int
      posixly_correct)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_w
      Src: /src/ndpi/windows/src/getopt.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - argc
    - argv
    - optstring
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    constantsTouched: []
    func_position:
      end: 956
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 956
    functionName: getopt_w
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_w
    linkageType: ''
    returnType: int
    signature: int getopt_w (int argc, wchar_t *const *argv, const wchar_t *optstring)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_w
      Src: /src/ndpi/windows/src/getopt.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    constantsTouched: []
    func_position:
      end: 960
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 960
    functionName: getopt_long_w
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_w
    linkageType: ''
    returnType: int
    signature: int getopt_long_w (int argc, wchar_t *const *argv, const wchar_t *options,
      const struct option_w *long_options, int *opt_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_w
      Src: /src/ndpi/windows/src/getopt.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    constantsTouched: []
    func_position:
      end: 964
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 964
    functionName: getopt_long_only_w
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_w
    linkageType: ''
    returnType: int
    signature: int getopt_long_only_w (int argc, wchar_t *const *argv, const wchar_t
      *options, const struct option_w *long_options, int *opt_index)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_w
      Src: /src/ndpi/windows/src/getopt.c:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    - d
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    - struct _getopt_data_w*
    constantsTouched: []
    func_position:
      end: 968
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 968
    functionName: _getopt_long_r_w
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_w
    linkageType: ''
    returnType: int
    signature: int _getopt_long_r_w (int argc, wchar_t *const *argv, const wchar_t
      *options, const struct option_w *long_options, int *opt_index, struct _getopt_data_w
      *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: _getopt_internal_r_w
      Src: /src/ndpi/windows/src/getopt.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - argc
    - argv
    - options
    - long_options
    - opt_index
    - d
    argTypes:
    - int
    - wchar_t**
    - wchar_t*
    - struct option_w*
    - int*
    - struct _getopt_data_w*
    constantsTouched: []
    func_position:
      end: 972
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 972
    functionName: _getopt_long_only_r_w
    functionSourceFile: /src/ndpi/windows/src/getopt.c
    functionUses: 0
    functionsReached:
    - _getopt_internal_r_w
    linkageType: ''
    returnType: int
    signature: int _getopt_long_only_r_w (int argc, wchar_t *const *argv, const wchar_t
      *options, const struct option_w *long_options, int *opt_index, struct _getopt_data_w
      *d)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/ndpi/windows/src/win-gettimeofday.c:30,1
    - Dst: _tzset
      Src: /src/ndpi/windows/src/win-gettimeofday.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - tv
    - tz
    argTypes:
    - struct timeval*
    - struct timezone*
    constantsTouched: []
    func_position:
      end: 55
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 55
    functionName: gettimeofday
    functionSourceFile: /src/ndpi/windows/src/win-gettimeofday.c
    functionUses: 5
    functionsReached:
    - GetSystemTimeAsFileTime
    - _tzset
    linkageType: ''
    returnType: int
    signature: int gettimeofday(struct timeval *tv, struct timezone *tz)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/windows/src/ndpi_define.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - X
    - O
    argTypes:
    - u_int8_t*
    - int
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: get_u_int64_t
    functionSourceFile: /src/ndpi/windows/src/ndpi_define.h
    functionUses: 11
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: u_int64_t
    signature: u_int64_t get_u_int64_t(const u_int8_t* X, int O)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:36,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:46,1
    - Dst: exit
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: help
    functionSourceFile: /src/ndpi/rrdtool/rrd_anomaly.c
    functionUses: 2
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void help()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:70,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:93,1
    - Dst: atof
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:102,1
    - Dst: help
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:112,1
    - Dst: help
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:118,1
    - Dst: ndpi_ses_init
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:120,1
    - Dst: rrd_parsetime
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:122,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:123,1
    - Dst: rrd_parsetime
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:127,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:128,1
    - Dst: rrd_proc_start_end
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:132,1
    - Dst: rrd_fetch_r
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:134,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:135,1
    - Dst: isnan
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:143,1
    - Dst: ndpi_ses_add_value
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:151,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:157,1
    - Dst: localtime
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:160,1
    - Dst: strftime
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:162,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:166,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:170,1
    - Dst: rrd_freemem
      Src: /src/ndpi/rrdtool/rrd_anomaly.c:178,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 181
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 181
    functionName: main
    functionSourceFile: /src/ndpi/rrdtool/rrd_anomaly.c
    functionUses: 6
    functionsReached:
    - ndpi_ses_init
    - rrd_fetch_r
    - printf
    - rrd_freemem
    - atof
    - rrd_proc_start_end
    - getopt
    - ndpi_ses_add_value
    - strftime
    - help
    - isnan
    - localtime
    - rrd_parsetime
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:53,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:68,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:70,1
    - Dst: exit
      Src: /src/ndpi/rrdtool/rrd_similarity.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: help
    functionSourceFile: /src/ndpi/rrdtool/rrd_similarity.c
    functionUses: 3
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void help()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rrd_fetch_r
      Src: /src/ndpi/rrdtool/rrd_similarity.c:84,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:85,1
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/rrdtool/rrd_similarity.c:92,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/rrdtool/rrd_similarity.c:95,1
    - Dst: isnan
      Src: /src/ndpi/rrdtool/rrd_similarity.c:101,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/rrdtool/rrd_similarity.c:102,1
    - Dst: ndpi_set_bin
      Src: /src/ndpi/rrdtool/rrd_similarity.c:103,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/rrdtool/rrd_similarity.c:106,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/rrdtool/rrd_similarity.c:107,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/rrdtool/rrd_similarity.c:110,1
    - Dst: rrd_freemem
      Src: /src/ndpi/rrdtool/rrd_similarity.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - rrd
    - start
    - end
    argTypes:
    - rrd_file_stats*
    - time_t
    - time_t
    constantsTouched: []
    func_position:
      end: 112
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 112
    functionName: analyze_rrd
    functionSourceFile: /src/ndpi/rrdtool/rrd_similarity.c
    functionUses: 0
    functionsReached:
    - rrd_fetch_r
    - printf
    - ndpi_data_stddev
    - rrd_freemem
    - ndpi_data_average
    - ndpi_free_data_analysis
    - ndpi_data_add_value
    - isnan
    - ndpi_init_bin
    - ndpi_alloc_data_analysis
    - ndpi_set_bin
    linkageType: ''
    returnType: void
    signature: void analyze_rrd(rrd_file_stats *rrd, time_t start, time_t end)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x1
    - r1
    - x2
    - r2
    argTypes:
    - int
    - int
    - int
    - int
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: circles_touch
    functionSourceFile: /src/ndpi/rrdtool/rrd_similarity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int circles_touch(int x1, int r1, int x2, int r2)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:139,1
    - Dst: circles_touch
      Src: /src/ndpi/rrdtool/rrd_similarity.c:144,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:150,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:163,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - rrd
    - num_rrds
    argTypes:
    - rrd_file_stats*
    - u_int
    constantsTouched: []
    func_position:
      end: 168
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 168
    functionName: find_rrd_similarities
    functionSourceFile: /src/ndpi/rrdtool/rrd_similarity.c
    functionUses: 0
    functionsReached:
    - circles_touch
    - printf
    linkageType: ''
    returnType: void
    signature: void find_rrd_similarities(rrd_file_stats *rrd, u_int num_rrds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:184,1
    - Dst: stat
      Src: /src/ndpi/rrdtool/rrd_similarity.c:186,1
    - Dst: S_ISDIR
      Src: /src/ndpi/rrdtool/rrd_similarity.c:187,1
    - Dst: find_rrds
      Src: /src/ndpi/rrdtool/rrd_similarity.c:188,1
    - Dst: strcmp
      Src: /src/ndpi/rrdtool/rrd_similarity.c:189,1
    - Dst: strdup
      Src: /src/ndpi/rrdtool/rrd_similarity.c:191,1
    - Dst: free
      Src: /src/ndpi/rrdtool/rrd_similarity.c:199,1
    - Dst: free
      Src: /src/ndpi/rrdtool/rrd_similarity.c:202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - basedir
    - filename
    - rrds
    - num_rrds
    argTypes:
    - char*
    - char*
    - rrd_file_stats*
    - u_int*
    constantsTouched: []
    func_position:
      end: 203
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 203
    functionName: find_rrds
    functionSourceFile: /src/ndpi/rrdtool/rrd_similarity.c
    functionUses: 1
    functionsReached:
    - stat
    - strdup
    - find_rrds
    - strcmp
    - S_ISDIR
    - ndpi_snprintf
    - free
    linkageType: ''
    returnType: void
    signature: void find_rrds(char *basedir, char *filename, rrd_file_stats *rrds,
      u_int *num_rrds)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/ndpi/rrdtool/rrd_similarity.c:220,1
    - Dst: atoi
      Src: /src/ndpi/rrdtool/rrd_similarity.c:245,1
    - Dst: help
      Src: /src/ndpi/rrdtool/rrd_similarity.c:253,1
    - Dst: help
      Src: /src/ndpi/rrdtool/rrd_similarity.c:259,1
    - Dst: rrd_parsetime
      Src: /src/ndpi/rrdtool/rrd_similarity.c:261,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:262,1
    - Dst: rrd_parsetime
      Src: /src/ndpi/rrdtool/rrd_similarity.c:266,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:267,1
    - Dst: rrd_proc_start_end
      Src: /src/ndpi/rrdtool/rrd_similarity.c:271,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/rrdtool/rrd_similarity.c:273,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:274,1
    - Dst: find_rrds
      Src: /src/ndpi/rrdtool/rrd_similarity.c:279,1
    - Dst: analyze_rrd
      Src: /src/ndpi/rrdtool/rrd_similarity.c:283,1
    - Dst: find_rrd_similarities
      Src: /src/ndpi/rrdtool/rrd_similarity.c:285,1
    - Dst: printf
      Src: /src/ndpi/rrdtool/rrd_similarity.c:290,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/rrdtool/rrd_similarity.c:295,1
    - Dst: free
      Src: /src/ndpi/rrdtool/rrd_similarity.c:296,1
    - Dst: ndpi_free
      Src: /src/ndpi/rrdtool/rrd_similarity.c:299,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    constantsTouched: []
    func_position:
      end: 302
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 302
    functionName: main
    functionSourceFile: /src/ndpi/rrdtool/rrd_similarity.c
    functionUses: 6
    functionsReached:
    - analyze_rrd
    - printf
    - atoi
    - ndpi_free
    - rrd_proc_start_end
    - getopt
    - ndpi_calloc
    - find_rrd_similarities
    - ndpi_free_bin
    - help
    - find_rrds
    - rrd_parsetime
    - free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:28,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:32,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:35,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:36,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:37,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:38,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:40,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:41,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:42,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:47,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:51,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:52,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:53,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:54,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:55,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:56,1
    - Dst: ndpi_hw_init
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:57,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:60,1
    - Dst: ndpi_alloc_rsi
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:61,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:64,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:65,1
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:66,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:68,1
    - Dst: ndpi_alloc_data_analysis_from_series
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:71,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:75,1
    - Dst: ndpi_hw_add_value
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:80,1
    - Dst: ndpi_rsi_add_value
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:82,1
    - Dst: ndpi_find_outliers
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:84,1
    - Dst: ndpi_predict_linear
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:85,1
    - Dst: ndpi_data_print_window_values
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:88,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:89,1
    - Dst: ndpi_data_mean
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:90,1
    - Dst: ndpi_data_variance
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:91,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:92,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:93,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:94,1
    - Dst: ndpi_data_jitter
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:95,1
    - Dst: ndpi_data_last
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:96,1
    - Dst: ndpi_data_window_average
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:97,1
    - Dst: ndpi_data_window_variance
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:98,1
    - Dst: ndpi_data_window_stddev
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:99,1
    - Dst: ndpi_data_entropy
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:100,1
    - Dst: ndpi_reset_data_analysis
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:101,1
    - Dst: ndpi_hw_reset
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:103,1
    - Dst: ndpi_data_ratio2str
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:107,1
    - Dst: ndpi_data_ratio
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:107,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:110,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:111,1
    - Dst: ndpi_is_outlier
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:112,1
    - Dst: ndpi_pearson_correlation
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:116,1
    - Dst: ndpi_hw_free
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:120,1
    - Dst: ndpi_free_rsi
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:122,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:123,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:124,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:125,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 75
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 129
      start: 8
    functionDepth: 4
    functionLinenumber: 8
    functionLinenumberEnd: 129
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp
    functionUses: 0
    functionsReached:
    - ndpi_predict_linear
    - ndpi_alloc_data_analysis_from_series
    - ndpi_data_window_stddev
    - ndpi_free
    - ndpi_data_print_window_values
    - ndpi_hw_init
    - ndpi_hw_reset
    - ndpi_hw_free
    - ndpi_data_ratio2str
    - ndpi_alloc_rsi
    - ndpi_data_variance
    - ndpi_data_stddev
    - ndpi_reset_data_analysis
    - ndpi_free_data_analysis
    - FuzzedDataProvider::remaining_bytes
    - ndpi_data_add_value
    - ndpi_find_outliers
    - ndpi_is_outlier
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_malloc
    - ndpi_rsi_add_value
    - ndpi_data_jitter
    - ndpi_data_ratio
    - ndpi_data_last
    - ndpi_data_min
    - ndpi_data_window_average
    - ndpi_data_max
    - ndpi_data_average
    - ndpi_data_entropy
    - ndpi_free_rsi
    - ndpi_alloc_data_analysis
    - ndpi_pearson_correlation
    - ndpi_hw_add_value
    - ndpi_data_mean
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_data_window_variance
    - FuzzedDataProvider::ConsumeFloatingPointInRange
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:15,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:19,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:21,1
    - Dst: ndpi_hll_init
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:23,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:23,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:26,1
    - Dst: ndpi_hll_add_number
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:28,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:28,1
    - Dst: ndpi_hll_count
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:30,1
    - Dst: ndpi_hll_reset
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:32,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:34,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:36,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:36,1
    - Dst: ndpi_hll_add
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:37,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:37,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:37,1
    - Dst: ndpi_hll_count
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:40,1
    - Dst: ndpi_hll_destroy
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:42,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_hll.cpp:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 48
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 48
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_hll.cpp
    functionUses: 0
    functionsReached:
    - ndpi_hll_add
    - std::vector::data
    - ndpi_hll_init
    - ndpi_hll_destroy
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_malloc
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::ConsumeBytes
    - std::vector::size
    - FuzzedDataProvider::remaining_bytes
    - ndpi_hll_count
    - ndpi_hll_reset
    - ndpi_hll_add_number
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_crc16_ccit
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:19,1
    - Dst: ndpi_crc16_ccit_false
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:20,1
    - Dst: ndpi_crc16_xmodem
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:21,1
    - Dst: ndpi_crc16_x25
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:22,1
    - Dst: ndpi_crc32
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:23,1
    - Dst: ndpi_md5
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:25,1
    - Dst: ndpi_MD5Init
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:27,1
    - Dst: ndpi_MD5Update
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:28,1
    - Dst: ndpi_MD5Update
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:29,1
    - Dst: ndpi_MD5Final
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:30,1
    - Dst: ndpi_murmur_hash
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:32,1
    - Dst: ndpi_quick_hash
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:33,1
    - Dst: ndpi_quick_16_byte_hash
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:36,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:38,1
    - Dst: memcpy
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:40,1
    - Dst: ndpi_quick_hash64
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:43,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:43,1
    - Dst: ndpi_hash_string
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:44,1
    - Dst: ndpi_rev_hash_string
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:45,1
    - Dst: ndpi_hash_string_len
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:46,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:46,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:48,1
    - Dst: ndpi_popcount_init
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:52,1
    - Dst: ndpi_popcount_count
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:53,1
    - Dst: ndpi_bin2hex
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:55,1
    - Dst: ndpi_hex2bin
      Src: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 59
      start: 4
    functionDepth: 3
    functionLinenumber: 4
    functionLinenumberEnd: 59
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_string_len
    - ndpi_free
    - ndpi_MD5Init
    - ndpi_crc16_xmodem
    - ndpi_crc16_x25
    - strlen
    - ndpi_crc16_ccit_false
    - ndpi_popcount_count
    - ndpi_murmur_hash
    - ndpi_crc16_ccit
    - ndpi_crc32
    - ndpi_hash_string
    - ndpi_malloc
    - ndpi_md5
    - ndpi_MD5Update
    - ndpi_quick_hash
    - ndpi_quick_16_byte_hash
    - ndpi_rev_hash_string
    - ndpi_bin2hex
    - ndpi_popcount_init
    - memcpy
    - ndpi_MD5Final
    - ndpi_quick_hash64
    - ndpi_hex2bin
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:31,1
    - Dst: set_ndpi_debug_function
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:33,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:37,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:42,1
    - Dst: ndpi_domain_classify_alloc
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:44,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeBytesAsString
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:49,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:49,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:50,1
    - Dst: ndpi_domain_classify_add
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:51,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:51,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:52,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:55,1
    - Dst: ndpi_domain_classify_add_domains
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:61,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:62,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:62,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:63,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:66,1
    - Dst: FuzzedDataProvider::ConsumeBytesAsString
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:68,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:68,1
    - Dst: ndpi_domain_classify_hostname
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:69,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:69,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:69,1
    - Dst: ndpi_domain_classify_hostname
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:74,1
    - Dst: c_str
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:74,1
    - Dst: ndpi_domain_classify_size
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:77,1
    - Dst: ndpi_domain_classify_free
      Src: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 81
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 81
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp
    functionUses: 0
    functionsReached:
    - ndpi_domain_classify_size
    - std::string::c_str
    - ndpi_load_domain_suffixes
    - set_ndpi_debug_function
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::ConsumeBytesAsString
    - ndpi_domain_classify_add
    - ndpi_calloc
    - ndpi_domain_classify_alloc
    - ndpi_get_num_internal_protocols
    - ndpi_domain_classify_hostname
    - c_str
    - ndpi_domain_classify_free
    - FuzzedDataProvider::ConsumeIntegralInRange
    - ndpi_domain_classify_add_domains
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_is_printable_buffer
      Src: /src/ndpi/fuzz/fuzz_dga.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain
    - domain_length
    argTypes:
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: ndpi_custom_dga_fn
    functionSourceFile: /src/ndpi/fuzz/fuzz_dga.c
    functionUses: 0
    functionsReached:
    - ndpi_is_printable_buffer
    linkageType: ''
    returnType: int
    signature: int ndpi_custom_dga_fn(const char* domain, int domain_length)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_dga.c:16,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/fuzz/fuzz_dga.c:17,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_dga.c:28,1
    - Dst: memcpy
      Src: /src/ndpi/fuzz/fuzz_dga.c:30,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/fuzz/fuzz_dga.c:32,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_dga.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 37
      start: 12
    functionDepth: 4
    functionLinenumber: 12
    functionLinenumberEnd: 37
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_dga.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ndpi_free
    - ndpi_malloc
    - ndpi_check_dga_name
    - ndpi_calloc
    - fuzz_init_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libinjection_sqli_init
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:12,1
    - Dst: libinjection_is_sqli
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:13,1
    - Dst: libinjection_sqli_init
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:14,1
    - Dst: libinjection_is_sqli
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:15,1
    - Dst: libinjection_sqli_init
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:16,1
    - Dst: libinjection_is_sqli
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:17,1
    - Dst: libinjection_sqli_init
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:18,1
    - Dst: libinjection_is_sqli
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:19,1
    - Dst: libinjection_sqli_init
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:20,1
    - Dst: libinjection_is_sqli
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:21,1
    - Dst: libinjection_sqli_init
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:22,1
    - Dst: libinjection_is_sqli
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:23,1
    - Dst: libinjection_sqli
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:25,1
    - Dst: libinjection_xss
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:27,1
    - Dst: libinjection_version
      Src: /src/ndpi/fuzz/fuzz_libinjection.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 32
      start: 6
    functionDepth: 7
    functionLinenumber: 6
    functionLinenumberEnd: 32
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_libinjection.c
    functionUses: 0
    functionsReached:
    - libinjection_sqli
    - libinjection_version
    - libinjection_is_sqli
    - libinjection_sqli_init
    - libinjection_xss
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c:10,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c:12,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c:14,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c:15,1
    - Dst: buffer_to_file
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c:17,1
    - Dst: load_malicious_ja4_file_fd
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c:18,1
    - Dst: fclose
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c:20,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 24
      start: 5
    functionDepth: 3
    functionLinenumber: 5
    functionLinenumberEnd: 24
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c
    functionUses: 0
    functionsReached:
    - buffer_to_file
    - fuzz_set_alloc_callbacks_and_seed
    - fclose
    - ndpi_init_detection_module
    - load_malicious_ja4_file_fd
    - ndpi_set_config
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c:15,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c:23,1
    - Dst: set_ndpi_debug_function
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c:26,1
    - Dst: buffer_to_file
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c:31,1
    - Dst: load_malicious_sha1_file_fd
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c:32,1
    - Dst: fclose
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c:34,1
    - Dst: ndpi_hash_free
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c:38,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 42
      start: 10
    functionDepth: 2
    functionLinenumber: 10
    functionLinenumberEnd: 42
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_free
    - load_malicious_sha1_file_fd
    - buffer_to_file
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - set_ndpi_debug_function
    - fclose
    - ndpi_calloc
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:16,1
    - Dst: ndpi_init_serializer
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:18,1
    - Dst: ndpi_init_serializer
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:19,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:22,1
    - Dst: ndpi_detection_process_packet
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:24,1
    - Dst: ndpi_detection_giveup
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:26,1
    - Dst: ndpi_reset_serializer
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:28,1
    - Dst: ndpi_reset_serializer
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:29,1
    - Dst: ndpi_dpi2json
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:32,1
    - Dst: ndpi_dpi2json
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:33,1
    - Dst: ndpi_dpi2json
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:35,1
    - Dst: ndpi_dpi2json
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:36,1
    - Dst: ndpi_free_flow_data
      Src: /src/ndpi/fuzz/fuzz_process_packet.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 41
      start: 12
    functionDepth: 7
    functionLinenumber: 12
    functionLinenumberEnd: 41
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_process_packet.c
    functionUses: 0
    functionsReached:
    - memset
    - ndpi_detection_process_packet
    - ndpi_dpi2json
    - ndpi_detection_giveup
    - ndpi_init_serializer
    - ndpi_free_flow_data
    - ndpi_reset_serializer
    - fuzz_init_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:15,1
    - Dst: ndpi_bitmap64_fuse_alloc
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:17,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:19,1
    - Dst: ndpi_bitmap64_fuse_compress
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:20,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:22,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:24,1
    - Dst: ndpi_bitmap64_fuse_set
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:26,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:28,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:34,1
    - Dst: ndpi_bitmap64_fuse_compress
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:35,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:38,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:40,1
    - Dst: ndpi_bitmap64_fuse_isset
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:42,1
    - Dst: ndpi_bitmap64_fuse_isset
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:46,1
    - Dst: ndpi_bitmap64_fuse_size
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:49,1
    - Dst: ndpi_bitmap64_fuse_free
      Src: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 54
      start: 7
    functionDepth: 3
    functionLinenumber: 7
    functionLinenumberEnd: 54
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp
    functionUses: 0
    functionsReached:
    - ndpi_bitmap64_fuse_free
    - ndpi_bitmap64_fuse_isset
    - ndpi_bitmap64_fuse_compress
    - ndpi_bitmap64_fuse_size
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_bitmap64_fuse_alloc
    - FuzzedDataProvider::ConsumeBool
    - ndpi_bitmap64_fuse_set
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:16,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:20,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:22,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:24,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:25,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:27,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:28,1
    - Dst: ndpi_kd_create
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:32,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:34,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:38,1
    - Dst: ndpi_kd_insert
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:40,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:43,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:51,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:57,1
    - Dst: ndpi_kd_nearest
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:59,1
    - Dst: ndpi_kd_num_results
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:61,1
    - Dst: ndpi_kd_result_get_item
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:62,1
    - Dst: ndpi_kd_distance
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:64,1
    - Dst: ndpi_kd_result_free
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:66,1
    - Dst: ndpi_kd_nearest
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:75,1
    - Dst: ndpi_kd_num_results
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:77,1
    - Dst: ndpi_kd_result_get_item
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:78,1
    - Dst: ndpi_kd_result_free
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:79,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:83,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:84,1
    - Dst: ndpi_kd_clear
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:85,1
    - Dst: ndpi_kd_free
      Src: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp:86,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 89
      start: 9
    functionDepth: 2
    functionLinenumber: 9
    functionLinenumberEnd: 89
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp
    functionUses: 0
    functionsReached:
    - ndpi_kd_free
    - ndpi_free
    - ndpi_kd_create
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_malloc
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_kd_result_get_item
    - ndpi_kd_result_free
    - FuzzedDataProvider::ConsumeBool
    - FuzzedDataProvider::remaining_bytes
    - FuzzedDataProvider::ConsumeFloatingPoint
    - ndpi_kd_num_results
    - FuzzedDataProvider::ConsumeIntegralInRange
    - ndpi_kd_distance
    - ndpi_kd_nearest
    - ndpi_kd_clear
    - ndpi_kd_insert
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:19,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:21,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:22,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:23,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:24,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:25,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:26,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:27,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:28,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:35,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:36,1
    - Dst: ndpi_flowv4_flow_hash
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:38,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:43,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:44,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:45,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:46,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:47,1
    - Dst: ndpi_flowv6_flow_hash
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:49,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_community_id.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 58
      start: 9
    functionDepth: 4
    functionLinenumber: 9
    functionLinenumberEnd: 58
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_community_id.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_malloc
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::ConsumeBytes
    - ndpi_flowv6_flow_hash
    - FuzzedDataProvider::remaining_bytes
    - ndpi_flowv4_flow_hash
    - FuzzedDataProvider::ConsumeIntegralInRange
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_filecfg_protocols.c:10,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_protocols.c:12,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_protocols.c:14,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_protocols.c:15,1
    - Dst: buffer_to_file
      Src: /src/ndpi/fuzz/fuzz_filecfg_protocols.c:17,1
    - Dst: load_protocols_file_fd
      Src: /src/ndpi/fuzz/fuzz_filecfg_protocols.c:18,1
    - Dst: fclose
      Src: /src/ndpi/fuzz/fuzz_filecfg_protocols.c:20,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_protocols.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 24
      start: 5
    functionDepth: 5
    functionLinenumber: 5
    functionLinenumberEnd: 24
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_filecfg_protocols.c
    functionUses: 0
    functionsReached:
    - buffer_to_file
    - fuzz_set_alloc_callbacks_and_seed
    - fclose
    - ndpi_init_detection_module
    - ndpi_set_config
    - load_protocols_file_fd
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c:17,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c:19,1
    - Dst: ntohl
      Src: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c:25,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c:35,1
    - Dst: get_crypto_data
      Src: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c:40,1
    - Dst: is_version_with_tls
      Src: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c:43,1
    - Dst: process_chlo
      Src: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c:44,1
    - Dst: process_tls
      Src: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c:46,1
    - Dst: ndpi_free_flow_data
      Src: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c:50,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 53
      start: 11
    functionDepth: 6
    functionLinenumber: 11
    functionLinenumberEnd: 53
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c
    functionUses: 0
    functionsReached:
    - memset
    - get_crypto_data
    - ndpi_calloc
    - is_version_with_tls
    - ndpi_free_flow_data
    - ntohl
    - process_chlo
    - process_tls
    - fuzz_init_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_shoco.cpp:15,1
    - Dst: FuzzedDataProvider::ConsumeRemainingBytesAsString
      Src: /src/ndpi/fuzz/fuzz_alg_shoco.cpp:17,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_alg_shoco.cpp:18,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_alg_shoco.cpp:19,1
    - Dst: shoco_compress
      Src: /src/ndpi/fuzz/fuzz_alg_shoco.cpp:22,1
    - Dst: shoco_decompress
      Src: /src/ndpi/fuzz/fuzz_alg_shoco.cpp:24,1
    - Dst: ndpi_compress_str
      Src: /src/ndpi/fuzz/fuzz_alg_shoco.cpp:26,1
    - Dst: ndpi_decompress_str
      Src: /src/ndpi/fuzz/fuzz_alg_shoco.cpp:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 32
      start: 6
    functionDepth: 3
    functionLinenumber: 6
    functionLinenumberEnd: 32
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_shoco.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - FuzzedDataProvider::ConsumeRemainingBytesAsString
    - shoco_decompress
    - ndpi_compress_str
    - FuzzedDataProvider::ConsumeBool
    - ndpi_decompress_str
    - strlen
    - shoco_compress
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:19,1
    - Dst: posix_memalign
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:22,1
    - Dst: posix_memalign
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:23,1
    - Dst: posix_memalign
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:24,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:25,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:28,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:32,1
    - Dst: mbedtls_aes_init
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:35,1
    - Dst: FuzzedDataProvider::PickValueInArray
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:37,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:38,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:39,1
    - Dst: mbedtls_aes_setkey_enc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:47,1
    - Dst: mbedtls_aes_setkey_dec
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:49,1
    - Dst: mbedtls_aes_crypt_ecb
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:52,1
    - Dst: mbedtls_aes_free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:54,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:56,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:57,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:58,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 62
      start: 10
    functionDepth: 4
    functionLinenumber: 10
    functionLinenumberEnd: 62
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp
    functionUses: 0
    functionsReached:
    - posix_memalign
    - mbedtls_aes_crypt_ecb
    - FuzzedDataProvider::PickValueInArray
    - malloc
    - FuzzedDataProvider::ConsumeBytes
    - mbedtls_aes_init
    - free
    - mbedtls_aes_free
    - FuzzedDataProvider::remaining_bytes
    - mbedtls_aes_setkey_enc
    - mbedtls_aes_setkey_dec
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 17
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: __compare
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_tree.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __compare(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: __free
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_tree.cpp
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void __free(void * const node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - a
    - which
    - depth
    - user_data
    argTypes:
    - void*
    - ndpi_VISIT
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: __walk
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_tree.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void __walk(const void *a, ndpi_VISIT which, int depth, void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:38,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:42,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:44,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:49,1
    - Dst: ndpi_tfind
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:51,1
    - Dst: ndpi_tsearch
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:52,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:52,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:53,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:56,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:62,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:67,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:69,1
    - Dst: ndpi_tfind
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:71,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:71,1
    - Dst: ndpi_tfind
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:75,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:78,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:81,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:83,1
    - Dst: ndpi_tdelete
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:85,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:86,1
    - Dst: ndpi_tdelete
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:90,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:91,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:94,1
    - Dst: ndpi_tdestroy
      Src: /src/ndpi/fuzz/fuzz_ds_tree.cpp:96,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 99
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 99
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_tree.cpp
    functionUses: 0
    functionsReached:
    - ndpi_tfind
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_malloc
    - ndpi_twalk
    - ndpi_tdelete
    - FuzzedDataProvider::remaining_bytes
    - ndpi_tdestroy
    - ndpi_tsearch
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:29,1
    - Dst: posix_memalign
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:32,1
    - Dst: posix_memalign
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:33,1
    - Dst: FuzzedDataProvider::PickValueInArray
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:35,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:36,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:37,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:38,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:39,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:40,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:41,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:42,1
    - Dst: mbedtls_cipher_list
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:44,1
    - Dst: static_cast<mbedtls_cipher_type_t>
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:46,1
    - Dst: mbedtls_cipher_info_from_type
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:47,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:50,1
    - Dst: mbedtls_cipher_init
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:51,1
    - Dst: mbedtls_cipher_init
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:52,1
    - Dst: mbedtls_cipher_info_from_string
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:53,1
    - Dst: mbedtls_cipher_info_get_mode
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:56,1
    - Dst: mbedtls_cipher_info_get_type
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:57,1
    - Dst: mbedtls_cipher_info_get_name
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:58,1
    - Dst: mbedtls_cipher_info_has_variable_key_bitlen
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:59,1
    - Dst: mbedtls_cipher_info_has_variable_iv_size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:60,1
    - Dst: mbedtls_cipher_info_get_iv_size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:61,1
    - Dst: mbedtls_cipher_info_get_block_size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:62,1
    - Dst: mbedtls_cipher_get_cipher_mode
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:63,1
    - Dst: mbedtls_cipher_get_iv_size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:64,1
    - Dst: mbedtls_cipher_get_type
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:65,1
    - Dst: mbedtls_cipher_get_name
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:66,1
    - Dst: mbedtls_cipher_get_key_bitlen
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:67,1
    - Dst: mbedtls_cipher_get_operation
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:68,1
    - Dst: mbedtls_cipher_info_get_key_bitlen
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:69,1
    - Dst: mbedtls_error_add
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:70,1
    - Dst: posix_memalign
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:72,1
    - Dst: posix_memalign
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:73,1
    - Dst: mbedtls_cipher_setkey
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:75,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:75,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:75,1
    - Dst: mbedtls_cipher_setkey
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:76,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:76,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:76,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:79,1
    - Dst: mbedtls_cipher_crypt
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:80,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:80,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:80,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:81,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:81,1
    - Dst: mbedtls_cipher_set_iv
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:83,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:83,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:83,1
    - Dst: mbedtls_cipher_set_iv
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:84,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:84,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:84,1
    - Dst: mbedtls_cipher_reset
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:86,1
    - Dst: mbedtls_cipher_reset
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:87,1
    - Dst: mbedtls_cipher_update
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:89,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:89,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:89,1
    - Dst: mbedtls_cipher_finish
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:91,1
    - Dst: mbedtls_cipher_update
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:94,1
    - Dst: mbedtls_cipher_finish
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:96,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:101,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:101,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:102,1
    - Dst: memcmp
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:102,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:102,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:112,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:113,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:114,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:115,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:116,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp:117,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 70
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 119
      start: 14
    functionDepth: 5
    functionLinenumber: 14
    functionLinenumberEnd: 119
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp
    functionUses: 0
    functionsReached:
    - mbedtls_cipher_list
    - std::vector::data
    - mbedtls_cipher_update
    - mbedtls_cipher_info_get_mode
    - malloc
    - mbedtls_cipher_info_has_variable_key_bitlen
    - mbedtls_cipher_info_get_key_bitlen
    - FuzzedDataProvider::ConsumeIntegralInRange
    - mbedtls_cipher_info_get_block_size
    - mbedtls_error_add
    - posix_memalign
    - mbedtls_cipher_finish
    - mbedtls_cipher_get_type
    - mbedtls_cipher_get_name
    - mbedtls_cipher_get_operation
    - static_cast<mbedtls_cipher_type_t>
    - mbedtls_cipher_info_get_iv_size
    - FuzzedDataProvider::remaining_bytes
    - mbedtls_cipher_get_key_bitlen
    - mbedtls_cipher_reset
    - memcmp
    - FuzzedDataProvider::PickValueInArray
    - FuzzedDataProvider::ConsumeBytes
    - std::vector::size
    - mbedtls_cipher_info_has_variable_iv_size
    - mbedtls_cipher_info_from_string
    - assert
    - mbedtls_cipher_get_cipher_mode
    - free
    - mbedtls_cipher_get_iv_size
    - mbedtls_cipher_info_get_name
    - mbedtls_cipher_setkey
    - mbedtls_cipher_crypt
    - mbedtls_cipher_info_from_type
    - mbedtls_cipher_info_get_type
    - mbedtls_cipher_init
    - FuzzedDataProvider::ConsumeBool
    - mbedtls_cipher_set_iv
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pl7m_mutator
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - Data
    - Size
    - MaxSize
    - Seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 8
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/ndpi/fuzz/fuzz_ndpi_reader.c
    functionUses: 0
    functionsReached:
    - pl7m_mutator
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomMutator(uint8_t *Data, size_t Size,\n                               size_t
      MaxSize, unsigned int Seed)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_detection_giveup
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:54,1
    - Dst: process_ndpi_collected_info
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - node
    - which
    - depth
    - user_data
    argTypes:
    - void*
    - ndpi_VISIT
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: node_cleanup_walker
    functionSourceFile: /src/ndpi/fuzz/fuzz_ndpi_reader.c
    functionUses: 0
    functionsReached:
    - ndpi_detection_giveup
    - process_ndpi_collected_info
    linkageType: ''
    returnType: void
    signature: void node_cleanup_walker(const void *node, ndpi_VISIT which, int depth,
      void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:72,1
    - Dst: fuzz_set_alloc_callbacks
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:83,1
    - Dst: ndpi_global_init
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:86,1
    - Dst: ndpi_workflow_init
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:88,1
    - Dst: ndpi_workflow_set_flow_callback
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:90,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:92,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:93,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:95,1
    - Dst: ndpi_load_categories_dir
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:96,1
    - Dst: ndpi_load_protocols_file
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:97,1
    - Dst: ndpi_load_categories_file
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:98,1
    - Dst: ndpi_load_risk_domain_file
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:99,1
    - Dst: ndpi_load_malicious_ja4_file
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:100,1
    - Dst: ndpi_load_malicious_sha1_file
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:101,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:104,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:107,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:108,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:109,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:110,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:111,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:112,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:114,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:115,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:116,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:118,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:119,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:120,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:121,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:122,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:123,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:124,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:127,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:128,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:133,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:150,1
    - Dst: buffer_to_file
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:153,1
    - Dst: pcap_fopen_offline
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:157,1
    - Dst: fclose
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:159,1
    - Dst: ndpi_is_datalink_supported
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:162,1
    - Dst: pcap_datalink
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:162,1
    - Dst: pcap_close
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:165,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:171,1
    - Dst: pcap_close
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:173,1
    - Dst: pcap_next_ex
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:178,1
    - Dst: memcpy
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:187,1
    - Dst: ndpi_workflow_process_packet
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:188,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:189,1
    - Dst: pcap_next_ex
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:192,1
    - Dst: pcap_close
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:194,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:198,1
    - Dst: ndpi_tdestroy
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:199,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:201,1
    - Dst: ndpi_report_payload_stats
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:204,1
    - Dst: ndpi_update_params
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:207,1
    - Dst: ndpi_update_params
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:208,1
    - Dst: ndpi_update_params
      Src: /src/ndpi/fuzz/fuzz_ndpi_reader.c:209,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 213
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 213
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ndpi_reader.c
    functionUses: 0
    functionsReached:
    - ndpi_is_datalink_supported
    - ndpi_load_malicious_ja4_file
    - ndpi_load_domain_suffixes
    - pcap_next_ex
    - ndpi_workflow_init
    - ndpi_load_categories_file
    - ndpi_free
    - pcap_fopen_offline
    - ndpi_set_config
    - ndpi_load_categories_dir
    - fuzz_set_alloc_callbacks
    - ndpi_twalk
    - ndpi_finalize_initialization
    - ndpi_workflow_set_flow_callback
    - ndpi_load_malicious_sha1_file
    - ndpi_workflow_process_packet
    - ndpi_global_init
    - pcap_close
    - pcap_datalink
    - calloc
    - ndpi_calloc
    - ndpi_update_params
    - free
    - memcpy
    - buffer_to_file
    - ndpi_load_protocols_file
    - fuzz_set_alloc_callbacks_and_seed
    - fclose
    - ndpi_tdestroy
    - ndpi_load_risk_domain_file
    - ndpi_report_payload_stats
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:26,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:30,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:33,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:34,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:39,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:41,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:42,1
    - Dst: memcpy
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:43,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:43,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:48,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:49,1
    - Dst: strdup
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:51,1
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:51,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:52,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:53,1
    - Dst: ndpi_cache_address
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:55,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:57,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:61,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:63,1
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:63,1
    - Dst: ndpi_cache_address
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:64,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:65,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:68,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:72,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:74,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:75,1
    - Dst: memcpy
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:76,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:76,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:81,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:82,1
    - Dst: ndpi_cache_address_find
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:85,1
    - Dst: ndpi_cache_address_find
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:89,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:91,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:92,1
    - Dst: ndpi_cache_address_flush_expired
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:93,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:96,1
    - Dst: ndpi_cache_address_dump
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:97,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:98,1
    - Dst: ndpi_cache_address_restore
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:99,1
    - Dst: ndpi_term_address_cache
      Src: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp:101,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 104
      start: 12
    functionDepth: 5
    functionLinenumber: 12
    functionLinenumberEnd: 104
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp
    functionUses: 0
    functionsReached:
    - FuzzedDataProvider::ConsumeRandomLengthString
    - memset
    - ndpi_cache_address
    - memcpy
    - ndpi_cache_address_flush_expired
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::ConsumeBytes
    - strdup
    - ndpi_strdup
    - ndpi_cache_address_restore
    - ndpi_term_address_cache
    - FuzzedDataProvider::remaining_bytes
    - ndpi_cache_address_dump
    - ndpi_cache_address_find
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:15,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:19,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:21,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:23,1
    - Dst: ndpi_jitter_init
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:24,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:27,1
    - Dst: ndpi_jitter_add_value
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:29,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:29,1
    - Dst: ndpi_jitter_free
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:31,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_jitter.cpp:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 36
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 36
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_jitter.cpp
    functionUses: 0
    functionsReached:
    - ndpi_jitter_init
    - ndpi_jitter_free
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_malloc
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::remaining_bytes
    - FuzzedDataProvider::ConsumeFloatingPoint
    - ndpi_jitter_add_value
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:25,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:25,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:28,1
    - Dst: ndpi_bitmask_set_all
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:32,1
    - Dst: ndpi_bitmask_reset
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:34,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:37,1
    - Dst: memcpy
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:39,1
    - Dst: parse_proto_name_list
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:42,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:44,1
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp
    functionUses: 0
    functionsReached:
    - ndpi_bitmask_reset
    - memcpy
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_malloc
    - parse_proto_name_list
    - ndpi_get_num_internal_protocols
    - ndpi_bitmask_alloc
    - ndpi_bitmask_set_all
    - ndpi_bitmask_free
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: no_sanitize
      Src: /src/ndpi/fuzz/fuzz_common_code.c:7,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 13
    functionName: fastrand
    functionSourceFile: /src/ndpi/fuzz/fuzz_common_code.c
    functionUses: 0
    functionsReached:
    - no_sanitize
    linkageType: ''
    returnType: int
    signature: int fastrand ()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fastrand
      Src: /src/ndpi/fuzz/fuzz_common_code.c:16,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_common_code.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: malloc_wrapper
    functionSourceFile: /src/ndpi/fuzz/fuzz_common_code.c
    functionUses: 0
    functionsReached:
    - malloc
    - fastrand
    linkageType: ''
    returnType: void
    signature: void *malloc_wrapper(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_common_code.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - freeable
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: free_wrapper
    functionSourceFile: /src/ndpi/fuzz/fuzz_common_code.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_wrapper(void *freeable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_common_code.c:24,1
    - Dst: set_ndpi_free
      Src: /src/ndpi/fuzz/fuzz_common_code.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: fuzz_set_alloc_callbacks
    functionSourceFile: /src/ndpi/fuzz/fuzz_common_code.c
    functionUses: 1
    functionsReached:
    - set_ndpi_free
    - set_ndpi_malloc
    linkageType: ''
    returnType: void
    signature: void fuzz_set_alloc_callbacks(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: fuzz_set_alloc_seed
    functionSourceFile: /src/ndpi/fuzz/fuzz_common_code.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fuzz_set_alloc_seed(int seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks
      Src: /src/ndpi/fuzz/fuzz_common_code.c:33,1
    - Dst: fuzz_set_alloc_seed
      Src: /src/ndpi/fuzz/fuzz_common_code.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seed
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: fuzz_set_alloc_callbacks_and_seed
    functionSourceFile: /src/ndpi/fuzz/fuzz_common_code.c
    functionUses: 14
    functionsReached:
    - fuzz_set_alloc_seed
    - fuzz_set_alloc_callbacks
    linkageType: ''
    returnType: void
    signature: void fuzz_set_alloc_callbacks_and_seed(int seed)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_common_code.c:41,1
    - Dst: ndpi_set_config_u64
      Src: /src/ndpi/fuzz/fuzz_common_code.c:43,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_common_code.c:44,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/fuzz/fuzz_common_code.c:46,1
    - Dst: ndpi_load_categories_dir
      Src: /src/ndpi/fuzz/fuzz_common_code.c:47,1
    - Dst: ndpi_load_protocols_file
      Src: /src/ndpi/fuzz/fuzz_common_code.c:48,1
    - Dst: ndpi_load_categories_file
      Src: /src/ndpi/fuzz/fuzz_common_code.c:49,1
    - Dst: ndpi_load_risk_domain_file
      Src: /src/ndpi/fuzz/fuzz_common_code.c:50,1
    - Dst: ndpi_load_malicious_ja4_file
      Src: /src/ndpi/fuzz/fuzz_common_code.c:51,1
    - Dst: ndpi_load_malicious_sha1_file
      Src: /src/ndpi/fuzz/fuzz_common_code.c:52,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_common_code.c:54,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/fuzz/fuzz_common_code.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - ndpi_info_mod
    - g_ctx
    argTypes:
    - struct ndpi_detection_module_struct**
    - struct ndpi_global_context*
    constantsTouched: []
    func_position:
      end: 58
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 58
    functionName: fuzz_init_detection_module
    functionSourceFile: /src/ndpi/fuzz/fuzz_common_code.c
    functionUses: 3
    functionsReached:
    - ndpi_load_malicious_ja4_file
    - ndpi_load_domain_suffixes
    - ndpi_load_categories_file
    - ndpi_load_protocols_file
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_load_malicious_sha1_file
    - ndpi_set_config_u64
    - ndpi_set_config
    - ndpi_load_risk_domain_file
    - ndpi_load_categories_dir
    linkageType: ''
    returnType: void
    signature: "void fuzz_init_detection_module(struct ndpi_detection_module_struct
      **ndpi_info_mod,\n                                struct ndpi_global_context
      *g_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmemopen
      Src: /src/ndpi/fuzz/fuzz_common_code.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: buffer_to_file
    functionSourceFile: /src/ndpi/fuzz/fuzz_common_code.c
    functionUses: 4
    functionsReached:
    - fmemopen
    linkageType: ''
    returnType: FILE
    signature: FILE *buffer_to_file(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:14,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:18,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:20,1
    - Dst: FuzzedDataProvider::ConsumeRemainingBytes
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:21,1
    - Dst: ndpi_quick_encrypt
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:23,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:23,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:23,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:23,1
    - Dst: ndpi_quick_decrypt
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:25,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:25,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:26,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 30
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 30
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_quick_encrypt
    - FuzzedDataProvider::ConsumeBytes
    - std::vector::size
    - FuzzedDataProvider::remaining_bytes
    - FuzzedDataProvider::ConsumeRemainingBytes
    - ndpi_quick_decrypt
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:27,1
    - Dst: gcry_control
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:29,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:29,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:30,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:34,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:36,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:38,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:39,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:40,1
    - Dst: gcry_md_get_algo_dlen
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:42,1
    - Dst: gcry_md_open
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:43,1
    - Dst: gcry_md_reset
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:45,1
    - Dst: gcry_md_setkey
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:46,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:46,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:48,1
    - Dst: gcry_md_setkey
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:49,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:49,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:49,1
    - Dst: gcry_md_write
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:51,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:51,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:51,1
    - Dst: memcpy
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:53,1
    - Dst: gcry_md_read
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:53,1
    - Dst: gcry_md_get_algo_dlen
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:53,1
    - Dst: gcry_md_get_algo
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:54,1
    - Dst: gcry_md_close
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:58,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:60,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:67,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:69,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:71,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:73,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:74,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:75,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:75,1
    - Dst: gcry_cipher_open
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:80,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:81,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:82,1
    - Dst: gcry_cipher_setkey
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:83,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:83,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:83,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:84,1
    - Dst: gcry_cipher_setkey
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:85,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:85,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:85,1
    - Dst: gcry_cipher_decrypt
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:86,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:86,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:86,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:86,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:87,1
    - Dst: gcry_cipher_encrypt
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:88,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:88,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:88,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:88,1
    - Dst: gcry_cipher_ctl
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:89,1
    - Dst: gcry_cipher_close
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:90,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:92,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:96,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:98,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:99,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:100,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:101,1
    - Dst: gcry_cipher_open
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:104,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:105,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:106,1
    - Dst: gcry_cipher_setkey
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:107,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:107,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:107,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:108,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:110,1
    - Dst: gcry_cipher_reset
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:111,1
    - Dst: gcry_cipher_setiv
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:112,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:112,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:112,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:113,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:114,1
    - Dst: gcry_cipher_setiv
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:115,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:115,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:115,1
    - Dst: gcry_cipher_authenticate
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:117,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:117,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:117,1
    - Dst: gcry_cipher_encrypt
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:119,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:119,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:119,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:119,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:120,1
    - Dst: gcry_cipher_decrypt
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:121,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:121,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:121,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:121,1
    - Dst: gcry_cipher_close
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:124,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:126,1
    - Dst: gpg_strerror_r
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:128,1
    - Dst: static_cast<gcry_error_t>
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:128,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:128,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp:130,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 80
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 133
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 133
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ndpi_free
    - static_cast<gcry_error_t>
    - FuzzedDataProvider::ConsumeIntegralInRange
    - gcry_control
    - gcry_cipher_close
    - gcry_md_read
    - gcry_cipher_open
    - gcry_cipher_setkey
    - gpg_strerror_r
    - gcry_md_get_algo_dlen
    - gcry_cipher_ctl
    - gcry_md_close
    - FuzzedDataProvider::ConsumeBytes
    - ndpi_malloc
    - FuzzedDataProvider::ConsumeIntegral
    - gcry_md_setkey
    - std::vector::size
    - gcry_cipher_decrypt
    - gcry_md_get_algo
    - gcry_cipher_encrypt
    - gcry_cipher_setiv
    - gcry_cipher_authenticate
    - memcpy
    - gcry_md_reset
    - gcry_md_open
    - gcry_cipher_reset
    - fuzz_set_alloc_callbacks_and_seed
    - gcry_md_write
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c:10,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c:12,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c:14,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c:15,1
    - Dst: buffer_to_file
      Src: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c:17,1
    - Dst: load_risk_domain_file_fd
      Src: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c:18,1
    - Dst: fclose
      Src: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c:20,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 24
      start: 5
    functionDepth: 4
    functionLinenumber: 5
    functionLinenumberEnd: 24
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c
    functionUses: 0
    functionsReached:
    - buffer_to_file
    - fuzz_set_alloc_callbacks_and_seed
    - fclose
    - ndpi_init_detection_module
    - ndpi_set_config
    - load_risk_domain_file_fd
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_is_stun.c:24,1
    - Dst: is_stun
      Src: /src/ndpi/fuzz/fuzz_is_stun.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_is_stun.c
    functionUses: 0
    functionsReached:
    - is_stun
    - fuzz_init_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:18,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:22,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:25,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:26,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:30,1
    - Dst: ndpi_ses_fitting
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:31,1
    - Dst: ndpi_des_fitting
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:32,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:33,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:35,1
    - Dst: ndpi_ses_init
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:36,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:36,1
    - Dst: ndpi_des_init
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:37,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:37,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:39,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:41,1
    - Dst: ndpi_ses_add_value
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:43,1
    - Dst: ndpi_des_add_value
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:45,1
    - Dst: ndpi_ses_reset
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:48,1
    - Dst: ndpi_des_reset
      Src: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 52
      start: 8
    functionDepth: 4
    functionLinenumber: 8
    functionLinenumberEnd: 52
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp
    functionUses: 0
    functionsReached:
    - ndpi_ses_fitting
    - ndpi_ses_init
    - ndpi_ses_reset
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_malloc
    - ndpi_des_fitting
    - ndpi_des_init
    - ndpi_ses_add_value
    - FuzzedDataProvider::remaining_bytes
    - FuzzedDataProvider::ConsumeFloatingPoint
    - ndpi_des_add_value
    - ndpi_des_reset
    - FuzzedDataProvider::ConsumeFloatingPointInRange
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:18,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:22,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:24,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:26,1
    - Dst: FuzzedDataProvider::ConsumeEnum
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:27,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:29,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:30,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:32,1
    - Dst: ndpi_inc_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:34,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:34,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:35,1
    - Dst: ndpi_inc_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:36,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:36,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:37,1
    - Dst: ndpi_bin_similarity
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:40,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:40,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:41,1
    - Dst: ndpi_clone_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:43,1
    - Dst: ndpi_bin_similarity
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:45,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:45,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:46,1
    - Dst: ndpi_get_bin_value
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:49,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:49,1
    - Dst: ndpi_reset_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:51,1
    - Dst: ndpi_get_bin_value
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:54,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:54,1
    - Dst: ndpi_set_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:57,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:57,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:58,1
    - Dst: ndpi_bin_similarity
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:60,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:60,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:61,1
    - Dst: ndpi_normalize_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:63,1
    - Dst: ndpi_normalize_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:64,1
    - Dst: ndpi_print_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:66,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:66,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:68,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:69,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:70,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:71,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:72,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:76,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:77,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:78,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:79,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:80,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:85,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:90,1
    - Dst: ndpi_set_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:92,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:93,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:94,1
    - Dst: ndpi_cluster_bins
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:98,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:101,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:104,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_alg_bins.cpp:105,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 108
      start: 8
    functionDepth: 3
    functionLinenumber: 8
    functionLinenumberEnd: 108
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_bins.cpp
    functionUses: 0
    functionsReached:
    - ndpi_free
    - FuzzedDataProvider::ConsumeIntegralInRange
    - ndpi_bin_similarity
    - ndpi_reset_bin
    - ndpi_get_bin_value
    - ndpi_clone_bin
    - FuzzedDataProvider::remaining_bytes
    - FuzzedDataProvider::ConsumeEnum
    - ndpi_normalize_bin
    - ndpi_cluster_bins
    - ndpi_malloc
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_inc_bin
    - ndpi_print_bin
    - ndpi_set_bin
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_free_bin
    - ndpi_init_bin
    - FuzzedDataProvider::ConsumeFloatingPointInRange
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:53,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:55,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:56,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:57,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:58,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:61,1
    - Dst: static_cast<ndpi_serialization_format>
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:63,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:63,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:65,1
    - Dst: static_cast<int>
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:65,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:66,1
    - Dst: buffer_to_file
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:72,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:74,1
    - Dst: pcap_fopen_offline
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:78,1
    - Dst: fclose
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:80,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:81,1
    - Dst: ndpi_is_datalink_supported
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:84,1
    - Dst: pcap_datalink
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:84,1
    - Dst: pcap_close
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:85,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:86,1
    - Dst: ndpi_global_init
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:90,1
    - Dst: ndpi_workflow_init
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:94,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:96,1
    - Dst: pcap_next_ex
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:99,1
    - Dst: ndpi_workflow_process_packet
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:101,1
    - Dst: pcap_next_ex
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:102,1
    - Dst: ndpi_workflow_free
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:105,1
    - Dst: pcap_close
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:107,1
    - Dst: ndpi_global_deinit
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:109,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 114
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 114
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp
    functionUses: 0
    functionsReached:
    - ndpi_is_datalink_supported
    - pcap_next_ex
    - ndpi_global_deinit
    - ndpi_workflow_init
    - ndpi_free
    - pcap_fopen_offline
    - FuzzedDataProvider::ConsumeIntegralInRange
    - static_cast<ndpi_serialization_format>
    - ndpi_strdup
    - ndpi_finalize_initialization
    - ndpi_workflow_process_packet
    - ndpi_global_init
    - pcap_close
    - ndpi_workflow_free
    - static_cast<int>
    - pcap_datalink
    - FuzzedDataProvider::ConsumeIntegral
    - buffer_to_file
    - fuzz_set_alloc_callbacks_and_seed
    - fclose
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:21,1
    - Dst: ndpi_ptree_create
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:23,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:26,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:28,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:29,1
    - Dst: memcpy
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:30,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:30,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:31,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:36,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:37,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:38,1
    - Dst: ndpi_parse_ip_string
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:42,1
    - Dst: ndpi_get_ip_string
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:42,1
    - Dst: ndpi_ptree_insert
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:44,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:46,1
    - Dst: ndpi_load_ptree_file
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:53,1
    - Dst: ndpi_load_ptree_file
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:54,1
    - Dst: ndpi_load_ptree_file
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:55,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:58,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:60,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:61,1
    - Dst: memcpy
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:62,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:62,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:67,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:68,1
    - Dst: ndpi_ptree_match_addr
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:71,1
    - Dst: ndpi_ptree_match_addr
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:75,1
    - Dst: ndpi_ptree_destroy
      Src: /src/ndpi/fuzz/fuzz_ds_ptree.cpp:77,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 80
      start: 10
    functionDepth: 3
    functionLinenumber: 10
    functionLinenumberEnd: 80
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_ptree.cpp
    functionUses: 0
    functionsReached:
    - ndpi_ptree_create
    - memset
    - ndpi_parse_ip_string
    - memcpy
    - ndpi_ptree_match_addr
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::ConsumeBytes
    - ndpi_get_ip_string
    - ndpi_load_ptree_file
    - ndpi_ptree_destroy
    - FuzzedDataProvider::remaining_bytes
    - ndpi_ptree_insert
    - FuzzedDataProvider::ConsumeIntegralInRange
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:14,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:16,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:17,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:21,1
    - Dst: binary_fuse8_allocate
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:24,1
    - Dst: binary_fuse8_populate
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:26,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:30,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:32,1
    - Dst: binary_fuse8_contain
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:33,1
    - Dst: binary_fuse8_contain
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:37,1
    - Dst: binary_fuse8_free
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:39,1
    - Dst: binary_fuse16_allocate
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:42,1
    - Dst: binary_fuse16_populate
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:44,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:48,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:50,1
    - Dst: binary_fuse16_contain
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:51,1
    - Dst: binary_fuse16_contain
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:55,1
    - Dst: binary_fuse16_free
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:57,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 63
      start: 5
    functionDepth: 3
    functionLinenumber: 5
    functionLinenumberEnd: 63
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp
    functionUses: 0
    functionsReached:
    - binary_fuse8_contain
    - binary_fuse16_allocate
    - binary_fuse16_free
    - binary_fuse16_contain
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_calloc
    - binary_fuse8_populate
    - binary_fuse16_populate
    - binary_fuse8_free
    - binary_fuse8_allocate
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:16,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:21,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:24,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:25,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:27,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:29,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:31,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:34,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:35,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:37,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:39,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:41,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:44,1
    - Dst: ndpi_btree_init
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:48,1
    - Dst: ndpi_btree_query
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:52,1
    - Dst: ndpi_free_knn
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:53,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:57,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:58,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:60,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:61,1
    - Dst: ndpi_free_btree
      Src: /src/ndpi/fuzz/fuzz_ds_btree.cpp:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 65
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 65
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_btree.cpp
    functionUses: 0
    functionsReached:
    - ndpi_free_knn
    - ndpi_free_btree
    - ndpi_free
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_malloc
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::remaining_bytes
    - FuzzedDataProvider::ConsumeFloatingPoint
    - FuzzedDataProvider::ConsumeIntegralInRange
    - ndpi_btree_init
    - ndpi_btree_query
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_filecfg_config.c:10,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_config.c:12,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_config.c:14,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_config.c:15,1
    - Dst: buffer_to_file
      Src: /src/ndpi/fuzz/fuzz_filecfg_config.c:17,1
    - Dst: load_config_file_fd
      Src: /src/ndpi/fuzz/fuzz_filecfg_config.c:18,1
    - Dst: fclose
      Src: /src/ndpi/fuzz/fuzz_filecfg_config.c:20,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_config.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 24
      start: 5
    functionDepth: 3
    functionLinenumber: 5
    functionLinenumberEnd: 24
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_filecfg_config.c
    functionUses: 0
    functionsReached:
    - buffer_to_file
    - fuzz_set_alloc_callbacks_and_seed
    - fclose
    - ndpi_init_detection_module
    - load_config_file_fd
    - ndpi_set_config
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:33,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:37,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:39,1
    - Dst: ac_automata_enable_debug
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:44,1
    - Dst: ac_automata_init
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:47,1
    - Dst: ndpi_init_automa
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:48,1
    - Dst: ndpi_init_automa_domain
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:50,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:52,1
    - Dst: ac_automata_feature
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:53,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:54,1
    - Dst: ac_automata_feature
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:55,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:56,1
    - Dst: ac_automata_feature
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:57,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:59,1
    - Dst: ac_automata_name
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:60,1
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:60,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:61,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:63,1
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:65,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:69,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:72,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:74,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:74,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:79,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:80,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:83,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:84,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:85,1
    - Dst: memchr
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:86,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:86,1
    - Dst: ac_automata_add
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:88,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:89,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:92,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:93,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:100,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:100,1
    - Dst: ndpi_add_string_to_automa
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:103,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:104,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:107,1
    - Dst: ac_automata_finalize
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:108,1
    - Dst: ndpi_finalize_automa
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:109,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:113,1
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:115,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:116,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:116,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:121,1
    - Dst: ac_automata_search
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:123,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:125,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:127,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:127,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:127,1
    - Dst: ndpi_match_string_value
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:128,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:128,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:128,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:129,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:129,1
    - Dst: ndpi_match_string_protocol_id
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:130,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:130,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:130,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:130,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:136,1
    - Dst: ac_automata_search
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:139,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:141,1
    - Dst: ndpi_match_string_value
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:142,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:142,1
    - Dst: ndpi_match_string_protocol_id
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:143,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:143,1
    - Dst: ndpi_free
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:146,1
    - Dst: ac_automata_dump
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:149,1
    - Dst: ac_automata_get_stats
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:151,1
    - Dst: ac_automata_release
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:153,1
    - Dst: ndpi_free_automa
      Src: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp:154,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 157
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 157
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp
    functionUses: 0
    functionsReached:
    - ac_automata_name
    - FuzzedDataProvider::ConsumeRandomLengthString
    - memset
    - ndpi_free
    - ndpi_finalize_automa
    - memchr
    - ndpi_init_automa
    - ac_automata_add
    - FuzzedDataProvider::ConsumeIntegralInRange
    - ac_automata_search
    - ndpi_init_automa_domain
    - strlen
    - ndpi_strdup
    - FuzzedDataProvider::remaining_bytes
    - ac_automata_get_stats
    - ndpi_match_string_value
    - ac_automata_enable_debug
    - ndpi_match_string_protocol_id
    - ac_automata_dump
    - ac_automata_feature
    - ac_automata_finalize
    - ac_automata_init
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_match_string
    - ndpi_free_automa
    - std::string::c_str
    - ac_automata_release
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_add_string_to_automa
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:16,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:20,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:22,1
    - Dst: ndpi_hash_init
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:23,1
    - Dst: ndpi_hash_init
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:25,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:27,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:30,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:31,1
    - Dst: ndpi_hash_add_entry
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:33,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:33,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:33,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:35,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:42,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:44,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:45,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:47,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:47,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:47,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:51,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:51,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:51,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:54,1
    - Dst: ndpi_hash_free
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:55,1
    - Dst: ndpi_hash_free
      Src: /src/ndpi/fuzz/fuzz_ds_hash.cpp:57,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 60
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 60
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_hash.cpp
    functionUses: 0
    functionsReached:
    - ndpi_hash_free
    - ndpi_hash_init
    - ndpi_hash_add_entry
    - std::vector::data
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::ConsumeBytes
    - std::vector::size
    - FuzzedDataProvider::remaining_bytes
    - FuzzedDataProvider::ConsumeIntegralInRange
    - ndpi_hash_find_entry
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_config.cpp:42,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:44,1
    - Dst: ndpi_global_init
      Src: /src/ndpi/fuzz/fuzz_config.cpp:45,1
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/fuzz/fuzz_config.cpp:49,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/fuzz/fuzz_config.cpp:49,1
    - Dst: ndpi_bitmask_set_all
      Src: /src/ndpi/fuzz/fuzz_config.cpp:50,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:51,1
    - Dst: ndpi_bitmask_reset
      Src: /src/ndpi/fuzz/fuzz_config.cpp:52,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/fuzz/fuzz_config.cpp:53,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:54,1
    - Dst: ndpi_bitmask_set
      Src: /src/ndpi/fuzz/fuzz_config.cpp:55,1
    - Dst: ndpi_init_detection_module_ext
      Src: /src/ndpi/fuzz/fuzz_config.cpp:58,1
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/fuzz/fuzz_config.cpp:59,1
    - Dst: ndpi_init_detection_module_ext
      Src: /src/ndpi/fuzz/fuzz_config.cpp:61,1
    - Dst: set_ndpi_debug_function
      Src: /src/ndpi/fuzz/fuzz_config.cpp:64,1
    - Dst: ndpi_set_user_data
      Src: /src/ndpi/fuzz/fuzz_config.cpp:66,1
    - Dst: ndpi_set_user_data
      Src: /src/ndpi/fuzz/fuzz_config.cpp:67,1
    - Dst: ndpi_get_user_data
      Src: /src/ndpi/fuzz/fuzz_config.cpp:68,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:73,1
    - Dst: ndpi_load_protocols_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:74,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:75,1
    - Dst: ndpi_load_protocols_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:76,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:76,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:77,1
    - Dst: ndpi_load_categories_dir
      Src: /src/ndpi/fuzz/fuzz_config.cpp:78,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:78,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:79,1
    - Dst: ndpi_load_categories_dir
      Src: /src/ndpi/fuzz/fuzz_config.cpp:80,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:80,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:81,1
    - Dst: ndpi_load_categories_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:82,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:83,1
    - Dst: ndpi_load_categories_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:84,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:84,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:85,1
    - Dst: ndpi_load_risk_domain_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:86,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:87,1
    - Dst: ndpi_load_risk_domain_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:88,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:88,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:89,1
    - Dst: ndpi_load_malicious_ja4_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:90,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:91,1
    - Dst: ndpi_load_malicious_ja4_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:92,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:92,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:93,1
    - Dst: ndpi_load_malicious_sha1_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:94,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:95,1
    - Dst: ndpi_load_malicious_sha1_file
      Src: /src/ndpi/fuzz/fuzz_config.cpp:96,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:96,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:97,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/fuzz/fuzz_config.cpp:98,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:99,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/fuzz/fuzz_config.cpp:100,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:101,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/fuzz/fuzz_config.cpp:102,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:102,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:104,1
    - Dst: ndpi_load_ipv4_ptree
      Src: /src/ndpi/fuzz/fuzz_config.cpp:105,1
    - Dst: ndpi_load_ipv4_ptree
      Src: /src/ndpi/fuzz/fuzz_config.cpp:106,1
    - Dst: ndpi_load_geoip
      Src: /src/ndpi/fuzz/fuzz_config.cpp:110,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:113,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/fuzz/fuzz_config.cpp:114,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/fuzz/fuzz_config.cpp:116,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:121,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:122,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:123,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:124,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:126,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:127,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:128,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:129,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:131,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:132,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:133,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:134,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:136,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:137,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:138,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:139,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:141,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:142,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:143,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:144,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:146,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:147,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:148,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:149,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:150,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:152,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:153,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:154,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:155,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:156,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:158,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:159,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:160,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:161,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:162,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:163,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:164,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:166,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:167,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:168,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:169,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:171,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:172,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:173,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:174,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:176,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:177,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:178,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:179,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:181,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:182,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:183,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:184,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:186,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:187,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:188,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:189,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:191,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:192,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:193,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:194,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:196,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:197,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:198,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:199,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:201,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:202,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:203,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:204,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:206,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:207,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:208,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:209,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:211,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:212,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:213,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:214,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:216,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:217,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:218,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:219,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:221,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:222,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:223,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:224,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:226,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:227,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:228,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:229,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:231,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:232,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:233,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:234,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:236,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:237,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:238,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:239,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:241,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:242,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:243,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:244,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:246,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:247,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:248,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:249,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:251,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:252,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:253,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:254,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:256,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:257,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:258,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:259,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:261,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:262,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:263,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:264,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:266,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:267,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:268,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:269,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:271,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:272,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:273,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:274,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:276,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:277,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:278,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:279,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:281,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:282,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:283,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:284,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:286,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:287,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:288,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:289,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:291,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:292,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:293,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:294,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:296,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:297,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:298,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:299,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:301,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:302,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:303,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:304,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:306,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:307,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:308,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:309,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:311,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:312,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:313,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:314,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:316,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:317,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:318,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:319,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:321,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:322,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:323,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:324,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:326,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:327,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:328,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:329,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:331,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:332,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:333,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:334,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:336,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:337,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:338,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:339,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:341,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:342,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:343,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:344,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:346,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:347,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:348,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:349,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:351,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:352,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:353,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:354,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:355,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:356,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:357,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:359,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:360,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:361,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:362,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:364,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:365,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:366,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:367,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:369,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:370,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:371,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:372,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:373,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:375,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:376,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/fuzz/fuzz_config.cpp:376,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:377,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:378,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:379,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:381,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:382,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:384,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:385,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:386,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:387,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:388,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:390,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:391,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/fuzz/fuzz_config.cpp:391,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:392,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:393,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:394,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:395,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:396,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:398,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:399,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/fuzz/fuzz_config.cpp:399,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:400,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:401,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:402,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:403,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:405,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:406,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:407,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:408,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:410,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:411,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:412,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:413,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:415,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:416,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:417,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:418,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:420,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:421,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:422,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:423,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:425,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:426,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:427,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:428,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:430,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:431,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:432,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:433,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:435,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:436,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:437,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:438,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:440,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:441,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:442,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:443,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:445,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:446,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:447,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:448,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:450,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:451,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:452,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:453,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:455,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:456,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:457,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:458,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:460,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:461,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:462,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:463,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:465,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:466,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:467,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:468,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:470,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:471,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:472,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:473,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:475,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:476,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:477,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:478,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:480,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:481,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:482,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:483,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:485,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:486,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:487,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:488,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:489,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:490,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:492,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:493,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:494,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:496,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:497,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:499,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:500,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:502,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:503,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:504,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:505,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:507,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:508,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:509,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:510,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:512,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:513,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:514,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:515,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:517,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:518,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:519,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:520,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:522,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:523,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:523,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:524,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:526,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:527,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:528,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:529,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:531,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:532,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:533,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:534,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:536,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:537,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:538,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:539,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:541,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:542,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:543,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:544,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:546,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:547,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:548,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:549,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:551,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:552,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:553,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:554,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:556,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:557,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:558,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:559,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:561,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:562,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:563,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:564,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:566,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:567,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:568,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:569,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:571,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:572,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:573,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:574,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:576,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:577,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:578,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:579,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:581,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:582,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:583,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:584,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:586,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:587,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:588,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:589,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:591,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:592,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:593,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:594,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:596,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:597,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:598,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:599,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:601,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:602,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:603,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:604,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:606,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:607,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:608,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:609,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:611,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:612,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:613,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:614,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:616,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:617,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:618,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:619,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:621,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:622,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:623,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:624,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:626,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:627,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:628,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:629,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:631,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:632,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:633,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:634,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:636,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:637,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:638,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:639,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:641,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:642,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:643,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:644,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:646,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:647,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:648,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:649,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:652,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:653,1
    - Dst: static_cast<int>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:653,1
    - Dst: ndpi_lru_cache_idx_to_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:654,1
    - Dst: static_cast<lru_cache_type>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:654,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:656,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:657,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:658,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:659,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:660,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:661,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:662,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:663,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:664,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:665,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:666,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:667,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:668,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:669,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:673,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:674,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:675,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:676,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:677,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:680,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:681,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:682,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:683,1
    - Dst: ndpi_add_host_risk_mask
      Src: /src/ndpi/fuzz/fuzz_config.cpp:686,1
    - Dst: FuzzedDataProvider::ConsumeBytesAsString
      Src: /src/ndpi/fuzz/fuzz_config.cpp:687,1
    - Dst: static_cast<ndpi_risk>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:688,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:688,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/fuzz/fuzz_config.cpp:690,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:693,1
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/fuzz/fuzz_config.cpp:693,1
    - Dst: ndpi_get_proto_by_id
      Src: /src/ndpi/fuzz/fuzz_config.cpp:694,1
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:696,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:698,1
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/fuzz/fuzz_config.cpp:698,1
    - Dst: ndpi_get_proto_by_id
      Src: /src/ndpi/fuzz/fuzz_config.cpp:699,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_config.cpp:701,1
    - Dst: ndpi_get_protocol_by_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:703,1
    - Dst: ndpi_map_user_proto_id_to_ndpi_id
      Src: /src/ndpi/fuzz/fuzz_config.cpp:706,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/fuzz/fuzz_config.cpp:707,1
    - Dst: ndpi_set_proto_breed
      Src: /src/ndpi/fuzz/fuzz_config.cpp:708,1
    - Dst: ndpi_set_proto_category
      Src: /src/ndpi/fuzz/fuzz_config.cpp:709,1
    - Dst: ndpi_is_subprotocol_informative
      Src: /src/ndpi/fuzz/fuzz_config.cpp:710,1
    - Dst: ndpi_get_proto_breed
      Src: /src/ndpi/fuzz/fuzz_config.cpp:711,1
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:713,1
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:714,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:715,1
    - Dst: ndpi_find_protocol_qoe
      Src: /src/ndpi/fuzz/fuzz_config.cpp:716,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:722,1
    - Dst: ndpi_network_port_ptree_match
      Src: /src/ndpi/fuzz/fuzz_config.cpp:723,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:723,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:725,1
    - Dst: ndpi_network_port_ptree6_match
      Src: /src/ndpi/fuzz/fuzz_config.cpp:726,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:726,1
    - Dst: ndpi_network_ptree6_match
      Src: /src/ndpi/fuzz/fuzz_config.cpp:727,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/fuzz/fuzz_config.cpp:729,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:729,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/fuzz/fuzz_config.cpp:730,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:730,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:733,1
    - Dst: static_cast<int>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:733,1
    - Dst: static_cast<int>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:734,1
    - Dst: ndpi_category_set_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:735,1
    - Dst: static_cast<ndpi_protocol_category_t>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:735,1
    - Dst: ndpi_is_custom_category
      Src: /src/ndpi/fuzz/fuzz_config.cpp:736,1
    - Dst: static_cast<ndpi_protocol_category_t>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:736,1
    - Dst: ndpi_category_get_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:737,1
    - Dst: static_cast<ndpi_protocol_category_t>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:737,1
    - Dst: ndpi_get_category_id
      Src: /src/ndpi/fuzz/fuzz_config.cpp:738,1
    - Dst: ndpi_tunnel2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:740,1
    - Dst: static_cast<ndpi_packet_tunnel>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:740,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:740,1
    - Dst: static_cast<int>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:740,1
    - Dst: static_cast<int>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:741,1
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/fuzz/fuzz_config.cpp:743,1
    - Dst: ndpi_get_proto_defaults
      Src: /src/ndpi/fuzz/fuzz_config.cpp:744,1
    - Dst: ndpi_dump_protocols
      Src: /src/ndpi/fuzz/fuzz_config.cpp:746,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:746,1
    - Dst: ndpi_generate_options
      Src: /src/ndpi/fuzz/fuzz_config.cpp:747,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:747,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:747,1
    - Dst: ndpi_dump_risks_score
      Src: /src/ndpi/fuzz/fuzz_config.cpp:748,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:748,1
    - Dst: ndpi_dump_config
      Src: /src/ndpi/fuzz/fuzz_config.cpp:749,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:749,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:752,1
    - Dst: ndpi_ssl_version2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:753,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:753,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:754,1
    - Dst: ndpi_multimedia_flowtype2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:755,1
    - Dst: static_cast<ndpi_multimedia_flow_type>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:755,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:755,1
    - Dst: ndpi_multimedia_flowtype2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:757,1
    - Dst: static_cast<ndpi_multimedia_flow_type>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:757,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:757,1
    - Dst: ndpi_get_ip_proto_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:758,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:758,1
    - Dst: ndpi_ssl_version2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:760,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:760,1
    - Dst: ndpi_get_ip_proto_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:761,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:761,1
    - Dst: ndpi_risk2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:763,1
    - Dst: static_cast<ndpi_risk_enum>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:763,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:763,1
    - Dst: ndpi_risk2code
      Src: /src/ndpi/fuzz/fuzz_config.cpp:764,1
    - Dst: static_cast<ndpi_risk_enum>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:764,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:764,1
    - Dst: ndpi_code2risk
      Src: /src/ndpi/fuzz/fuzz_config.cpp:765,1
    - Dst: ndpi_risk2code
      Src: /src/ndpi/fuzz/fuzz_config.cpp:765,1
    - Dst: static_cast<ndpi_risk_enum>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:765,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:765,1
    - Dst: ndpi_severity2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:766,1
    - Dst: static_cast<ndpi_risk_severity>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:766,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:766,1
    - Dst: ndpi_risk2score
      Src: /src/ndpi/fuzz/fuzz_config.cpp:767,1
    - Dst: static_cast<ndpi_risk_enum>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:767,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:767,1
    - Dst: ndpi_http_method2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:768,1
    - Dst: static_cast<ndpi_http_method>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:768,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:768,1
    - Dst: ndpi_confidence_get_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:769,1
    - Dst: static_cast<ndpi_confidence_t>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:769,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:769,1
    - Dst: ndpi_fpc_confidence_get_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:770,1
    - Dst: static_cast<ndpi_fpc_confidence_t>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:770,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:770,1
    - Dst: ndpi_get_proto_breed_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:771,1
    - Dst: static_cast<ndpi_protocol_breed_t>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:771,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:771,1
    - Dst: ndpi_get_l4_proto_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:772,1
    - Dst: static_cast<ndpi_l4_proto_info>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:772,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:772,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:773,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:774,1
    - Dst: ndpi_is_proto_unknown
      Src: /src/ndpi/fuzz/fuzz_config.cpp:775,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:776,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:777,1
    - Dst: ndpi_is_proto_equals
      Src: /src/ndpi/fuzz/fuzz_config.cpp:778,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:778,1
    - Dst: ndpi_rtp_payload_type2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:780,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:780,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_config.cpp:780,1
    - Dst: ndpi_entropy2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:783,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_config.cpp:783,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:783,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:786,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_config.cpp:787,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_config.cpp:788,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_config.cpp:789,1
    - Dst: FuzzedDataProvider::ConsumeRemainingBytes
      Src: /src/ndpi/fuzz/fuzz_config.cpp:790,1
    - Dst: ndpi_detection_get_l4
      Src: /src/ndpi/fuzz/fuzz_config.cpp:795,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_config.cpp:795,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_config.cpp:795,1
    - Dst: ndpi_detection_get_l4
      Src: /src/ndpi/fuzz/fuzz_config.cpp:796,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_config.cpp:796,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_config.cpp:796,1
    - Dst: ndpi_detection_process_packet
      Src: /src/ndpi/fuzz/fuzz_config.cpp:798,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_config.cpp:798,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_config.cpp:798,1
    - Dst: ndpi_detection_giveup
      Src: /src/ndpi/fuzz/fuzz_config.cpp:799,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_config.cpp:801,1
    - Dst: ndpi_get_flow_masterprotocol
      Src: /src/ndpi/fuzz/fuzz_config.cpp:801,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_config.cpp:802,1
    - Dst: ndpi_get_flow_appprotocol
      Src: /src/ndpi/fuzz/fuzz_config.cpp:802,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_config.cpp:803,1
    - Dst: ndpi_get_flow_category
      Src: /src/ndpi/fuzz/fuzz_config.cpp:803,1
    - Dst: ndpi_get_lower_proto
      Src: /src/ndpi/fuzz/fuzz_config.cpp:804,1
    - Dst: ndpi_get_upper_proto
      Src: /src/ndpi/fuzz/fuzz_config.cpp:805,1
    - Dst: ndpi_get_flow_error_code
      Src: /src/ndpi/fuzz/fuzz_config.cpp:806,1
    - Dst: ndpi_get_flow_risk_info
      Src: /src/ndpi/fuzz/fuzz_config.cpp:807,1
    - Dst: ndpi_get_flow_ndpi_proto
      Src: /src/ndpi/fuzz/fuzz_config.cpp:808,1
    - Dst: ndpi_is_proto
      Src: /src/ndpi/fuzz/fuzz_config.cpp:809,1
    - Dst: ndpi_http_method2str
      Src: /src/ndpi/fuzz/fuzz_config.cpp:810,1
    - Dst: ndpi_is_subprotocol_informative
      Src: /src/ndpi/fuzz/fuzz_config.cpp:811,1
    - Dst: ndpi_get_flow_name
      Src: /src/ndpi/fuzz/fuzz_config.cpp:812,1
    - Dst: ndpi_is_protocol_detected
      Src: /src/ndpi/fuzz/fuzz_config.cpp:814,1
    - Dst: ndpi_guess_undetected_protocol
      Src: /src/ndpi/fuzz/fuzz_config.cpp:815,1
    - Dst: ndpi_find_ipv4_category_userdata
      Src: /src/ndpi/fuzz/fuzz_config.cpp:819,1
    - Dst: ndpi_search_tcp_or_udp_raw
      Src: /src/ndpi/fuzz/fuzz_config.cpp:821,1
    - Dst: ntohl
      Src: /src/ndpi/fuzz/fuzz_config.cpp:821,1
    - Dst: ntohl
      Src: /src/ndpi/fuzz/fuzz_config.cpp:821,1
    - Dst: ndpi_guess_undetected_protocol_v4
      Src: /src/ndpi/fuzz/fuzz_config.cpp:823,1
    - Dst: ndpi_find_ipv6_category_userdata
      Src: /src/ndpi/fuzz/fuzz_config.cpp:828,1
    - Dst: ndpi_search_tcp_or_udp
      Src: /src/ndpi/fuzz/fuzz_config.cpp:831,1
    - Dst: ndpi_network_risk_ptree_match
      Src: /src/ndpi/fuzz/fuzz_config.cpp:835,1
    - Dst: ndpi_check_flow_risk_exceptions
      Src: /src/ndpi/fuzz/fuzz_config.cpp:840,1
    - Dst: ndpi_check_flow_risk_exceptions
      Src: /src/ndpi/fuzz/fuzz_config.cpp:843,1
    - Dst: ndpi_get_geoip_asn
      Src: /src/ndpi/fuzz/fuzz_config.cpp:846,1
    - Dst: ndpi_get_geoip_aso
      Src: /src/ndpi/fuzz/fuzz_config.cpp:847,1
    - Dst: ndpi_get_geoip_country_continent
      Src: /src/ndpi/fuzz/fuzz_config.cpp:848,1
    - Dst: ndpi_get_geoip_country_continent_city
      Src: /src/ndpi/fuzz/fuzz_config.cpp:849,1
    - Dst: ndpi_free_flow_data
      Src: /src/ndpi/fuzz/fuzz_config.cpp:851,1
    - Dst: ndpi_get_lru_cache_stats
      Src: /src/ndpi/fuzz/fuzz_config.cpp:855,1
    - Dst: static_cast<lru_cache_type>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:855,1
    - Dst: ndpi_get_patricia_stats
      Src: /src/ndpi/fuzz/fuzz_config.cpp:857,1
    - Dst: static_cast<ptree_type>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:857,1
    - Dst: ndpi_patricia_get_stats
      Src: /src/ndpi/fuzz/fuzz_config.cpp:858,1
    - Dst: ndpi_get_automa_stats
      Src: /src/ndpi/fuzz/fuzz_config.cpp:860,1
    - Dst: static_cast<automa_type>
      Src: /src/ndpi/fuzz/fuzz_config.cpp:860,1
    - Dst: ndpi_revision
      Src: /src/ndpi/fuzz/fuzz_config.cpp:863,1
    - Dst: ndpi_get_api_version
      Src: /src/ndpi/fuzz/fuzz_config.cpp:864,1
    - Dst: ndpi_get_gcrypt_version
      Src: /src/ndpi/fuzz/fuzz_config.cpp:865,1
    - Dst: ndpi_get_ndpi_detection_module_size
      Src: /src/ndpi/fuzz/fuzz_config.cpp:867,1
    - Dst: ndpi_detection_get_sizeof_ndpi_flow_struct
      Src: /src/ndpi/fuzz/fuzz_config.cpp:868,1
    - Dst: ndpi_get_tot_allocated_memory
      Src: /src/ndpi/fuzz/fuzz_config.cpp:870,1
    - Dst: ndpi_log_timestamp
      Src: /src/ndpi/fuzz/fuzz_config.cpp:871,1
    - Dst: ndpi_free_geoip
      Src: /src/ndpi/fuzz/fuzz_config.cpp:873,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/fuzz/fuzz_config.cpp:875,1
    - Dst: ndpi_global_deinit
      Src: /src/ndpi/fuzz/fuzz_config.cpp:877,1
    CyclomaticComplexity: 143
    EdgeCount: 143
    ICount: 754
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 880
      start: 11
    functionDepth: 8
    functionLinenumber: 11
    functionLinenumberEnd: 880
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_config.cpp
    functionUses: 0
    functionsReached:
    - ndpi_detection_get_l4
    - ndpi_find_protocol_qoe
    - ndpi_is_custom_category
    - static_cast<ndpi_multimedia_flow_type>
    - ndpi_rtp_payload_type2str
    - ndpi_get_protocol_by_name
    - FuzzedDataProvider::ConsumeRemainingBytes
    - FuzzedDataProvider::ConsumeFloatingPoint
    - static_cast<ptree_type>
    - snprintf
    - ndpi_patricia_get_stats
    - ndpi_get_tot_allocated_memory
    - ndpi_set_proto_category
    - ndpi_get_proto_defaults
    - ndpi_get_api_version
    - ndpi_finalize_initialization
    - ndpi_free_geoip
    - ndpi_multimedia_flowtype2str
    - ndpi_severity2str
    - ndpi_find_ipv4_category_userdata
    - ndpi_get_flow_appprotocol
    - ndpi_detection_giveup
    - ndpi_get_flow_risk_info
    - assert
    - ndpi_get_geoip_asn
    - ndpi_detection_get_sizeof_ndpi_flow_struct
    - ndpi_get_proto_breed
    - ndpi_is_proto_unknown
    - ndpi_load_protocols_file
    - ndpi_set_proto_breed
    - ndpi_get_lower_proto
    - ndpi_init_detection_module_ext
    - ndpi_code2risk
    - ndpi_bitmask_set_all
    - ndpi_risk2score
    - ndpi_tunnel2str
    - ndpi_load_malicious_ja4_file
    - ndpi_load_domain_suffixes
    - memset
    - ndpi_dump_config
    - ndpi_set_config
    - ndpi_load_categories_dir
    - ndpi_get_config
    - ndpi_dump_protocols
    - ndpi_lru_cache_idx_to_name
    - ndpi_search_tcp_or_udp_raw
    - ndpi_get_ndpi_detection_module_size
    - ndpi_get_num_protocols
    - ndpi_load_malicious_sha1_file
    - ndpi_category_set_name
    - ndpi_guess_undetected_protocol
    - set_ndpi_debug_function
    - FuzzedDataProvider::ConsumeBytesAsString
    - ntohl
    - static_cast<ndpi_risk_enum>
    - ndpi_map_ndpi_id_to_user_proto_id
    - ndpi_map_user_proto_id_to_ndpi_id
    - ndpi_get_l4_proto_name
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_search_tcp_or_udp
    - ndpi_get_num_internal_protocols
    - static_cast<ndpi_fpc_confidence_t>
    - ndpi_get_flow_error_code
    - ndpi_load_risk_domain_file
    - static_cast<ndpi_l4_proto_info>
    - ndpi_exit_detection_module
    - ndpi_dump_risks_score
    - ndpi_get_upper_proto
    - ndpi_is_protocol_detected
    - ndpi_load_categories_file
    - std::vector::data
    - ndpi_get_category_id
    - static_cast<ndpi_http_method>
    - ndpi_get_automa_stats
    - ndpi_get_ip_proto_name
    - ndpi_bitmask_set
    - static_cast<ndpi_risk>
    - ndpi_load_ipv4_ptree
    - ndpi_load_geoip
    - ndpi_get_host_domain_suffix
    - ndpi_get_geoip_country_continent
    - ndpi_bitmask_alloc
    - ndpi_get_user_data
    - ndpi_free_flow_data
    - ndpi_global_init
    - static_cast<ndpi_risk_severity>
    - static_cast<int>
    - static_cast<ndpi_packet_tunnel>
    - ndpi_entropy2str
    - ndpi_detection_process_packet
    - ndpi_network_ptree6_match
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_get_flow_category
    - static_cast<automa_type>
    - ndpi_check_flow_risk_exceptions
    - ndpi_get_host_domain
    - ndpi_revision
    - static_cast<lru_cache_type>
    - ndpi_guess_undetected_protocol_v4
    - ndpi_get_geoip_aso
    - ndpi_network_port_ptree_match
    - ndpi_get_flow_ndpi_proto
    - ndpi_get_proto_by_name
    - ndpi_get_lru_cache_stats
    - ndpi_generate_options
    - ndpi_get_flow_name
    - ndpi_category_get_name
    - ndpi_get_geoip_country_continent_city
    - ndpi_global_deinit
    - ndpi_bitmask_reset
    - ndpi_ssl_version2str
    - ndpi_fpc_confidence_get_name
    - ndpi_set_user_data
    - ndpi_log_timestamp
    - ndpi_add_host_risk_mask
    - FuzzedDataProvider::ConsumeIntegralInRange
    - ndpi_find_ipv6_category_userdata
    - ndpi_is_proto_equals
    - ndpi_network_risk_ptree_match
    - ndpi_get_flow_masterprotocol
    - ndpi_get_proto_by_id
    - ndpi_risk2code
    - ndpi_network_port_ptree6_match
    - ndpi_is_proto
    - ndpi_risk2str
    - static_cast<ndpi_confidence_t>
    - ndpi_get_gcrypt_version
    - ndpi_get_proto_name
    - static_cast<ndpi_protocol_breed_t>
    - ndpi_get_proto_breed_name
    - ndpi_confidence_get_name
    - ndpi_http_method2str
    - std::vector::size
    - ndpi_is_subprotocol_informative
    - ndpi_get_patricia_stats
    - static_cast<ndpi_protocol_category_t>
    - FuzzedDataProvider::ConsumeBool
    - ndpi_bitmask_free
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_filecfg_categories.c:10,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_categories.c:12,1
    - Dst: ndpi_set_config_u64
      Src: /src/ndpi/fuzz/fuzz_filecfg_categories.c:14,1
    - Dst: ndpi_set_config_u64
      Src: /src/ndpi/fuzz/fuzz_filecfg_categories.c:15,1
    - Dst: buffer_to_file
      Src: /src/ndpi/fuzz/fuzz_filecfg_categories.c:17,1
    - Dst: load_categories_file_fd
      Src: /src/ndpi/fuzz/fuzz_filecfg_categories.c:18,1
    - Dst: fclose
      Src: /src/ndpi/fuzz/fuzz_filecfg_categories.c:20,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_categories.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 24
      start: 5
    functionDepth: 3
    functionLinenumber: 5
    functionLinenumberEnd: 24
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_filecfg_categories.c
    functionUses: 0
    functionsReached:
    - buffer_to_file
    - fuzz_set_alloc_callbacks_and_seed
    - fclose
    - ndpi_init_detection_module
    - ndpi_set_config_u64
    - ndpi_exit_detection_module
    - load_categories_file_fd
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:20,1
    - Dst: static_cast<ndpi_serialization_format>
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:22,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:22,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:24,1
    - Dst: ndpi_init_serializer
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:25,1
    - Dst: ndpi_init_serializer_ll
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:27,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:27,1
    - Dst: ndpi_serializer_set_csv_separator
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:33,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:35,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:37,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:38,1
    - Dst: ndpi_serialize_uint32_uint32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:40,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:40,1
    - Dst: ndpi_serialize_uint32_int32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:41,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:41,1
    - Dst: ndpi_serialize_uint32_uint64
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:42,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:42,1
    - Dst: ndpi_serialize_uint32_int64
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:43,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:43,1
    - Dst: ndpi_serialize_uint32_float
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:44,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:44,1
    - Dst: ndpi_serialize_uint32_double
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:47,1
    - Dst: ndpi_serialize_uint32_binary
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:48,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:48,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:48,1
    - Dst: ndpi_serialize_uint32_string
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:49,1
    - Dst: FuzzedDataProvider::ConsumeBytesAsString
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:49,1
    - Dst: ndpi_serialize_uint32_boolean
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:50,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:50,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:52,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:52,1
    - Dst: ndpi_serialize_string_uint32_format
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:53,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:53,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:54,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:54,1
    - Dst: ndpi_serialize_string_uint64
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:55,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:55,1
    - Dst: ndpi_serialize_string_int64
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:56,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:56,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:57,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:57,1
    - Dst: ndpi_serialize_string_double
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:59,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:59,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:60,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:61,1
    - Dst: ndpi_serialize_string_binary
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:62,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:62,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:62,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:63,1
    - Dst: FuzzedDataProvider::ConsumeBytesAsString
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:63,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:64,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:65,1
    - Dst: ndpi_serialize_string_raw
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:66,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:66,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:66,1
    - Dst: ndpi_serialize_string_boolean
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:67,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:67,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:69,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:70,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:71,1
    - Dst: ndpi_serialize_binary_uint32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:75,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:75,1
    - Dst: ndpi_serialize_binary_int32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:76,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:76,1
    - Dst: ndpi_serialize_binary_uint64
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:77,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:77,1
    - Dst: ndpi_serialize_binary_int64
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:78,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:78,1
    - Dst: ndpi_serialize_binary_float
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:79,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:79,1
    - Dst: ndpi_serialize_binary_double
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:81,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:81,1
    - Dst: ndpi_serialize_binary_boolean
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:82,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:82,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:83,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:84,1
    - Dst: ndpi_serialize_binary_binary
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:85,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:85,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:85,1
    - Dst: ndpi_serialize_end_of_record
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:88,1
    - Dst: ndpi_serializer_create_snapshot
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:91,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:93,1
    - Dst: ndpi_serializer_skip_header
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:94,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:96,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:97,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:98,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:99,1
    - Dst: ndpi_serialize_uint32_uint32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:100,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:100,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:100,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:101,1
    - Dst: FuzzedDataProvider::ConsumeBytesAsString
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:101,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:102,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:102,1
    - Dst: ndpi_serialize_binary_boolean
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:103,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:103,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:104,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:107,1
    - Dst: ndpi_serialize_start_of_block_uint32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:108,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:109,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:110,1
    - Dst: ndpi_serialize_uint32_uint32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:111,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:111,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:112,1
    - Dst: FuzzedDataProvider::ConsumeBytesAsString
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:112,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:113,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:113,1
    - Dst: ndpi_serialize_binary_boolean
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:114,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:114,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:115,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:119,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:120,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:121,1
    - Dst: ndpi_serialize_raw_record
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:122,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:122,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:122,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:126,1
    - Dst: ndpi_serializer_rollback_snapshot
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:127,1
    - Dst: ndpi_serialize_start_of_list
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:129,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:132,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:134,1
    - Dst: snprintf
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:135,1
    - Dst: ndpi_serialize_uint32_uint32
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:136,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:136,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:137,1
    - Dst: FuzzedDataProvider::ConsumeBytesAsString
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:137,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:138,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:138,1
    - Dst: ndpi_serialize_binary_boolean
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:139,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:139,1
    - Dst: ndpi_serialize_end_of_list
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:142,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:143,1
    - Dst: ndpi_serializer_get_header
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:147,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:148,1
    - Dst: ndpi_serializer_set_buffer_len
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:149,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:149,1
    - Dst: ndpi_init_deserializer
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:152,1
    - Dst: ndpi_init_serializer_ll
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:154,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:154,1
    - Dst: ndpi_deserialize_clone_all
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:156,1
    - Dst: ndpi_serializer_get_format
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:157,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:158,1
    - Dst: ndpi_serializer_get_buffer_len
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:159,1
    - Dst: ndpi_serializer_get_internal_buffer_size
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:160,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:161,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:162,1
    - Dst: ndpi_deserialize_get_format
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:162,1
    - Dst: ndpi_init_deserializer
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:166,1
    - Dst: ndpi_init_serializer_ll
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:168,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:168,1
    - Dst: ndpi_deserialize_clone_item
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:170,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:171,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/fuzz/fuzz_serialization.cpp:176,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 137
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 179
      start: 9
    functionDepth: 9
    functionLinenumber: 9
    functionLinenumberEnd: 179
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_serialization.cpp
    functionUses: 0
    functionsReached:
    - memset
    - ndpi_serialize_binary_uint32
    - ndpi_serialize_binary_uint64
    - ndpi_serialize_string_uint32_format
    - ndpi_serializer_get_buffer_len
    - std::vector::data
    - ndpi_serialize_uint32_float
    - ndpi_serialize_uint32_uint32
    - ndpi_serializer_get_internal_buffer_size
    - ndpi_serialize_end_of_list
    - ndpi_serialize_binary_boolean
    - ndpi_serialize_raw_record
    - ndpi_serialize_uint32_boolean
    - FuzzedDataProvider::ConsumeBool
    - FuzzedDataProvider::ConsumeFloatingPoint
    - ndpi_serialize_binary_int64
    - FuzzedDataProvider::ConsumeIntegralInRange
    - snprintf
    - ndpi_serializer_rollback_snapshot
    - strlen
    - static_cast<ndpi_serialization_format>
    - ndpi_serializer_get_buffer
    - ndpi_serialize_uint32_binary
    - ndpi_serialize_string_binary
    - ndpi_deserialize_clone_item
    - ndpi_serialize_string_boolean
    - ndpi_serialize_uint32_string
    - ndpi_serialize_binary_double
    - ndpi_serialize_start_of_list
    - ndpi_serialize_uint32_uint64
    - ndpi_serialize_binary_int32
    - ndpi_deserialize_clone_all
    - ndpi_serialize_string_raw
    - ndpi_serialize_uint32_int32
    - ndpi_term_serializer
    - ndpi_serialize_end_of_block
    - ndpi_serialize_binary_float
    - ndpi_serialize_binary_binary
    - ndpi_serializer_skip_header
    - FuzzedDataProvider::ConsumeBytes
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::ConsumeBytesAsString
    - ndpi_deserialize_get_format
    - ndpi_serialize_uint32_double
    - std::vector::size
    - ndpi_init_serializer
    - ndpi_serialize_string_double
    - assert
    - ndpi_serializer_get_format
    - ndpi_serialize_start_of_block
    - ndpi_serialize_uint32_int64
    - ndpi_serialize_string_string
    - ndpi_init_serializer_ll
    - ndpi_serialize_end_of_record
    - ndpi_serializer_get_header
    - ndpi_serializer_set_buffer_len
    - ndpi_serialize_string_float
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_serialize_string_int64
    - ndpi_serialize_start_of_block_uint32
    - ndpi_serialize_string_uint64
    - ndpi_serialize_string_int32
    - ndpi_serializer_create_snapshot
    - ndpi_serialize_string_uint32
    - ndpi_init_deserializer
    - ndpi_serializer_set_csv_separator
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:15,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:16,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:17,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:20,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:21,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:23,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:27,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:28,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:28,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:28,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:32,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:33,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/fuzz/fuzz_alg_memmem.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 38
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 38
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_memmem.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - FuzzedDataProvider::ConsumeBytes
    - ndpi_strlcpy
    - std::vector::size
    - ndpi_memmem
    - FuzzedDataProvider::ConsumeIntegralInRange
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:27,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:36,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:37,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:38,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:39,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:42,1
    - Dst: FuzzedDataProvider::PickValueInArray
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:45,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:46,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:48,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:49,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:51,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:52,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:54,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:55,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:57,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:58,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:59,1
    - Dst: malloc
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:60,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:62,1
    - Dst: static_cast<mbedtls_cipher_id_t>
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:64,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:64,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:66,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:66,1
    - Dst: mbedtls_gcm_init
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:68,1
    - Dst: mbedtls_gcm_init
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:69,1
    - Dst: mbedtls_gcm_setkey
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:71,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:71,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:71,1
    - Dst: mbedtls_gcm_setkey
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:72,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:72,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:72,1
    - Dst: mbedtls_gcm_crypt_and_tag
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:75,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:76,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:77,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:77,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:78,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:78,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:79,1
    - Dst: mbedtls_gcm_auth_decrypt
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:89,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:90,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:91,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:91,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:92,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:92,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:97,1
    - Dst: memcmp
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:97,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:97,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:97,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:99,1
    - Dst: mbedtls_gcm_free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:103,1
    - Dst: mbedtls_gcm_free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:104,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:106,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:107,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:108,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:109,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:110,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:111,1
    - Dst: free
      Src: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp:112,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 115
      start: 14
    functionDepth: 5
    functionLinenumber: 14
    functionLinenumberEnd: 115
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - mbedtls_gcm_crypt_and_tag
    - memcmp
    - FuzzedDataProvider::PickValueInArray
    - malloc
    - FuzzedDataProvider::ConsumeBytes
    - mbedtls_gcm_free
    - free
    - std::vector::size
    - FuzzedDataProvider::remaining_bytes
    - mbedtls_gcm_init
    - assert
    - mbedtls_gcm_setkey
    - FuzzedDataProvider::ConsumeIntegralInRange
    - mbedtls_gcm_auth_decrypt
    - static_cast<mbedtls_cipher_id_t>
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:12,1
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:13,1
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:14,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:16,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:16,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:16,1
    - Dst: ndpi_str_endswith
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:18,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:18,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:18,1
    - Dst: ndpi_str_to_utf8
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:20,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:20,1
    - Dst: strlen
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:20,1
    - Dst: std::string::c_str
      Src: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 23
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 23
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp
    functionUses: 0
    functionsReached:
    - FuzzedDataProvider::ConsumeRandomLengthString
    - std::string::c_str
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_strnstr
    - ndpi_str_to_utf8
    - strlen
    - ndpi_str_endswith
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - prefix
    - data
    argTypes:
    - ndpi_prefix_t*
    - void*
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: process_ptree_data
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_patricia.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void process_ptree_data(ndpi_prefix_t *prefix, void *data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:15,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - node
    - data
    - user_data
    argTypes:
    - ndpi_patricia_node_t*
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: process3_ptree_data
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_patricia.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void process3_ptree_data(ndpi_patricia_node_t *node, void *data, void
      *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:30,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:34,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:36,1
    - Dst: ndpi_patricia_new
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:44,1
    - Dst: ndpi_patricia_get_maxbits
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:46,1
    - Dst: ndpi_patricia_process
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:47,1
    - Dst: ndpi_patricia_walk_tree_inorder
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:48,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:51,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:54,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:55,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:56,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:57,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:58,1
    - Dst: ndpi_patricia_lookup
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:59,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:61,1
    - Dst: ndpi_patricia_get_node_prefix
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:65,1
    - Dst: ndpi_patricia_get_node_bits
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:66,1
    - Dst: ndpi_patricia_set_node_data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:67,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:68,1
    - Dst: ndpi_patricia_get_node_data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:68,1
    - Dst: ndpi_patricia_set_node_u64
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:69,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:70,1
    - Dst: ndpi_patricia_get_node_u64
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:70,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:74,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:75,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:76,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:77,1
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:78,1
    - Dst: ndpi_patricia_lookup
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:79,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:81,1
    - Dst: ndpi_patricia_get_node_prefix
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:85,1
    - Dst: ndpi_patricia_get_node_bits
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:86,1
    - Dst: ndpi_patricia_set_node_data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:87,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:88,1
    - Dst: ndpi_patricia_get_node_data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:88,1
    - Dst: ndpi_patricia_set_node_u64
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:89,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:90,1
    - Dst: ndpi_patricia_get_node_u64
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:90,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:94,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:95,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:96,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:97,1
    - Dst: ndpi_fill_prefix_mac
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:98,1
    - Dst: ndpi_patricia_lookup
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:99,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:101,1
    - Dst: ndpi_patricia_get_node_prefix
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:105,1
    - Dst: ndpi_patricia_get_node_bits
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:106,1
    - Dst: ndpi_patricia_set_node_data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:107,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:108,1
    - Dst: ndpi_patricia_get_node_data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:108,1
    - Dst: ndpi_patricia_set_node_u64
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:109,1
    - Dst: assert
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:110,1
    - Dst: ndpi_patricia_get_node_u64
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:110,1
    - Dst: ndpi_patricia_process
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:116,1
    - Dst: ndpi_patricia_walk_tree_inorder
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:117,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:120,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:123,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:124,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:125,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:126,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:127,1
    - Dst: ndpi_patricia_search_exact
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:128,1
    - Dst: ndpi_patricia_remove
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:130,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:133,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:134,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:135,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:136,1
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:137,1
    - Dst: ndpi_patricia_search_exact
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:138,1
    - Dst: ndpi_patricia_remove
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:140,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:143,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:144,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:145,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:146,1
    - Dst: ndpi_fill_prefix_mac
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:147,1
    - Dst: ndpi_patricia_search_exact
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:148,1
    - Dst: ndpi_patricia_remove
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:150,1
    - Dst: ndpi_patricia_search_exact
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:157,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:160,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:163,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:164,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:165,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:166,1
    - Dst: ndpi_fill_prefix_v4
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:167,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:168,1
    - Dst: ndpi_patricia_remove
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:170,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:173,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:174,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:175,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:176,1
    - Dst: ndpi_fill_prefix_v6
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:177,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:178,1
    - Dst: ndpi_patricia_remove
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:180,1
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:183,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:184,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:185,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:186,1
    - Dst: ndpi_fill_prefix_mac
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:187,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:188,1
    - Dst: ndpi_patricia_remove
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:190,1
    - Dst: ndpi_patricia_search_best
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:196,1
    - Dst: ndpi_patricia_clone
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:198,1
    - Dst: ndpi_patricia_process
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:200,1
    - Dst: ndpi_patricia_walk_tree_inorder
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:201,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:204,1
    - Dst: ndpi_patricia_destroy
      Src: /src/ndpi/fuzz/fuzz_ds_patricia.cpp:205,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 146
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 208
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 208
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_patricia.cpp
    functionUses: 0
    functionsReached:
    - ndpi_patricia_get_node_bits
    - ndpi_fill_prefix_mac
    - std::vector::data
    - ndpi_patricia_clone
    - ndpi_patricia_lookup
    - FuzzedDataProvider::ConsumeIntegralInRange
    - ndpi_patricia_get_maxbits
    - ndpi_patricia_destroy
    - ndpi_patricia_process
    - ndpi_patricia_get_node_prefix
    - ndpi_patricia_remove
    - FuzzedDataProvider::remaining_bytes
    - ndpi_fill_prefix_v6
    - ndpi_patricia_search_best
    - FuzzedDataProvider::ConsumeBytes
    - FuzzedDataProvider::ConsumeIntegral
    - assert
    - ndpi_fill_prefix_v4
    - ndpi_patricia_get_node_u64
    - ndpi_patricia_set_node_u64
    - ndpi_patricia_set_node_data
    - fuzz_set_alloc_callbacks_and_seed
    - ndpi_patricia_new
    - ndpi_patricia_get_node_data
    - ndpi_patricia_search_exact
    - ndpi_patricia_walk_tree_inorder
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bytestream_to_number64
      Src: /src/ndpi/fuzz/fuzz_alg_bytestream.c:8,1
    - Dst: ndpi_bytestream_dec_or_hex_to_number64
      Src: /src/ndpi/fuzz/fuzz_alg_bytestream.c:9,1
    - Dst: ntohs_ndpi_bytestream_to_number
      Src: /src/ndpi/fuzz/fuzz_alg_bytestream.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 13
      start: 3
    functionDepth: 2
    functionLinenumber: 3
    functionLinenumberEnd: 13
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_alg_bytestream.c
    functionUses: 0
    functionsReached:
    - ntohs_ndpi_bytestream_to_number
    - ndpi_bytestream_to_number64
    - ndpi_bytestream_dec_or_hex_to_number64
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_tls_certificate.c:20,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/fuzz/fuzz_tls_certificate.c:21,1
    - Dst: memset
      Src: /src/ndpi/fuzz/fuzz_tls_certificate.c:35,1
    - Dst: strcpy
      Src: /src/ndpi/fuzz/fuzz_tls_certificate.c:36,1
    - Dst: processCertificateElements
      Src: /src/ndpi/fuzz/fuzz_tls_certificate.c:39,1
    - Dst: ndpi_free_flow_data
      Src: /src/ndpi/fuzz/fuzz_tls_certificate.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 43
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 43
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_tls_certificate.c
    functionUses: 0
    functionsReached:
    - memset
    - processCertificateElements
    - ndpi_calloc
    - ndpi_free_flow_data
    - strcpy
    - fuzz_init_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_filecfg_category.c:10,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_category.c:12,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_category.c:14,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/fuzz/fuzz_filecfg_category.c:15,1
    - Dst: buffer_to_file
      Src: /src/ndpi/fuzz/fuzz_filecfg_category.c:17,1
    - Dst: load_category_file_fd
      Src: /src/ndpi/fuzz/fuzz_filecfg_category.c:18,1
    - Dst: fclose
      Src: /src/ndpi/fuzz/fuzz_filecfg_category.c:20,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/fuzz/fuzz_filecfg_category.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 24
      start: 5
    functionDepth: 3
    functionLinenumber: 5
    functionLinenumberEnd: 24
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_filecfg_category.c
    functionUses: 0
    functionsReached:
    - buffer_to_file
    - fuzz_set_alloc_callbacks_and_seed
    - fclose
    - ndpi_init_detection_module
    - load_category_file_fd
    - ndpi_set_config
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:13,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:17,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:19,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:20,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:21,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:23,1
    - Dst: ndpi_cm_sketch_add
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:26,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:26,1
    - Dst: ndpi_cm_sketch_count
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:29,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:29,1
    - Dst: ndpi_cm_sketch_destroy
      Src: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 35
      start: 7
    functionDepth: 3
    functionLinenumber: 7
    functionLinenumberEnd: 35
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp
    functionUses: 0
    functionsReached:
    - ndpi_cm_sketch_add
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - ndpi_cm_sketch_init
    - ndpi_cm_sketch_destroy
    - FuzzedDataProvider::remaining_bytes
    - FuzzedDataProvider::ConsumeIntegralInRange
    - ndpi_cm_sketch_count
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::remaining_bytes
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:17,1
    - Dst: fuzz_set_alloc_callbacks_and_seed
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:21,1
    - Dst: cache_new
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:23,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:23,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:25,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:28,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:29,1
    - Dst: cache_add
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:31,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:31,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:31,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:33,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:40,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:42,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:43,1
    - Dst: cache_contains
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:45,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:45,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:45,1
    - Dst: cache_contains
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:49,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:49,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:49,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:53,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:55,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:56,1
    - Dst: cache_remove
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:58,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:58,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:58,1
    - Dst: cache_remove
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:62,1
    - Dst: std::vector::data
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:62,1
    - Dst: std::vector::size
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:62,1
    - Dst: cache_free
      Src: /src/ndpi/fuzz/fuzz_ds_libcache.cpp:65,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    constantsTouched: []
    func_position:
      end: 68
      start: 10
    functionDepth: 3
    functionLinenumber: 10
    functionLinenumberEnd: 68
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/ndpi/fuzz/fuzz_ds_libcache.cpp
    functionUses: 0
    functionsReached:
    - std::vector::data
    - cache_add
    - fuzz_set_alloc_callbacks_and_seed
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::ConsumeBytes
    - std::vector::size
    - cache_contains
    - FuzzedDataProvider::remaining_bytes
    - cache_remove
    - cache_free
    - FuzzedDataProvider::ConsumeIntegralInRange
    - cache_new
    - FuzzedDataProvider::ConsumeBool
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:153,1
    - Dst: access
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:162,1
    - Dst: pcap_open_live
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:163,1
    - Dst: pcap_open_offline
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:166,1
    - Dst: pcap_open_offline_with_tstamp_precision
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:168,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:174,1
    - Dst: free_workflow
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:176,1
    - Dst: pcap_compile
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:180,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:181,1
    - Dst: pcap_geterr
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:181,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:182,1
    - Dst: pcap_setfilter
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:187,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:188,1
    - Dst: pcap_geterr
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:188,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:191,1
    - Dst: free_workflow
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:193,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:199,1
    - Dst: free_workflow
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:201,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:207,1
    - Dst: free_workflow
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:209,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:213,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 1
    argNames:
    - file_or_device
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 216
      start: 150
    functionDepth: 4
    functionLinenumber: 150
    functionLinenumberEnd: 216
    functionName: init_workflow
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pcap_open_live
    - printf
    - pcap_setfilter
    - pcap_open_offline_with_tstamp_precision
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_calloc
    - free_workflow
    - exit
    - access
    - pcap_compile
    - pcap_open_offline
    - pcap_geterr
    linkageType: ''
    returnType: struct nDPI_workflow
    signature: struct nDPI_workflow * init_workflow(char const * const file_or_device)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_flow_free
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:222,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: ndpi_flow_info_freer
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - ndpi_flow_free
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_flow_info_freer(void * const node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcap_close
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:236,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:241,1
    - Dst: ndpi_tdestroy
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:244,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:246,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:247,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - workflow
    argTypes:
    - struct nDPI_workflow**
    constantsTouched: []
    func_position:
      end: 250
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 250
    functionName: free_workflow
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 1
    functionsReached:
    - ndpi_tdestroy
    - ndpi_free
    - ndpi_exit_detection_module
    - pcap_close
    linkageType: ''
    returnType: void
    signature: void free_workflow(struct nDPI_workflow ** const workflow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcap_findalldevs
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:257,1
    - Dst: strdup
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:262,1
    - Dst: pcap_freealldevs
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - errbuf
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 266
    functionName: get_default_pcapdev
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - strdup
    - pcap_freealldevs
    - pcap_findalldevs
    linkageType: ''
    returnType: char
    signature: char * get_default_pcapdev(char *errbuf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_default_pcapdev
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:279,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:281,1
    - Dst: strdup
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:285,1
    - Dst: init_workflow
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:292,1
    - Dst: free
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:295,1
    - Dst: free
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:300,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - file_or_device
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 302
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 302
    functionName: setup_reader_threads
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - fprintf
    - init_workflow
    - strdup
    - free
    - get_default_pcapdev
    linkageType: ''
    returnType: int
    signature: int setup_reader_threads(char const * const file_or_device)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:310,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:312,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:315,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - flow
    - src_addr_str
    - src_addr_len
    - dst_addr_str
    - dst_addr_len
    argTypes:
    - struct nDPI_flow_info*
    - char*
    - size_t
    - char*
    - size_t
    constantsTouched: []
    func_position:
      end: 322
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 322
    functionName: ip_tuple_to_string
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    linkageType: ''
    returnType: int
    signature: "int ip_tuple_to_string(struct nDPI_flow_info const * const flow,\n
      \                             char * const src_addr_str, size_t src_addr_len,\n
      \                             char * const dst_addr_str, size_t dst_addr_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:336,1
    - Dst: ip_tuple_to_string
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:343,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:344,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:346,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:354,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:358,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:362,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:365,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:368,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:371,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:378,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - reader_thread
    - header
    - l4_data_len
    - flow
    argTypes:
    - struct nDPI_reader_thread*
    - struct pcap_pkthdr*
    - uint32_t
    - struct nDPI_flow_info*
    constantsTouched: []
    func_position:
      end: 379
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 379
    functionName: print_packet_info
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - ip_tuple_to_string
    - ndpi_snprintf
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_packet_info(struct nDPI_reader_thread const * const reader_thread,\n
      \                             struct pcap_pkthdr const * const header,\n                              uint32_t
      l4_data_len,\n                              struct nDPI_flow_info const * const
      flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 2
    argNames:
    - A
    - B
    argTypes:
    - struct nDPI_flow_info*
    - struct nDPI_flow_info*
    constantsTouched: []
    func_position:
      end: 449
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 449
    functionName: ip_tuples_compare
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ip_tuples_compare(struct nDPI_flow_info const * const A, struct
      nDPI_flow_info const * const B)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_tuple_to_string
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:472,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - A
    - which
    - depth
    - user_data
    argTypes:
    - void*
    - ndpi_VISIT
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 477
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 477
    functionName: ndpi_idle_scan_walker
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - ip_tuple_to_string
    linkageType: ''
    returnType: void
    signature: void ndpi_idle_scan_walker(void const * const A, ndpi_VISIT which,
      int depth, void * const user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ip_tuples_compare
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - A
    - B
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 497
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 497
    functionName: ndpi_workflow_node_cmp
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - ip_tuples_compare
    linkageType: ''
    returnType: int
    signature: int ndpi_workflow_node_cmp(void const * const A, void const * const
      B)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:505,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:511,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:513,1
    - Dst: ndpi_tdelete
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:515,1
    - Dst: ndpi_flow_info_freer
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - workflow
    argTypes:
    - struct nDPI_workflow*
    constantsTouched: []
    func_position:
      end: 524
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 524
    functionName: check_for_idle_flows
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - ndpi_tdelete
    - ndpi_flow_info_freer
    - ndpi_twalk
    - printf
    linkageType: ''
    returnType: void
    signature: void check_for_idle_flows(struct nDPI_workflow * const workflow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:554,1
    - Dst: check_for_idle_flows
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:569,1
    - Dst: pcap_datalink
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:572,1
    - Dst: ntohl
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:574,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:583,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:589,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:593,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:600,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:608,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:614,1
    - Dst: pcap_datalink
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:615,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:626,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:634,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:642,1
    - Dst: ndpi_detection_get_l4
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:648,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:651,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:663,1
    - Dst: ndpi_detection_get_l4
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:669,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:672,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:693,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:703,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:712,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:713,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:718,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:724,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:725,1
    - Dst: print_packet_info
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:738,1
    - Dst: ndpi_flowv4_flow_hash
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:746,1
    - Dst: ndpi_flowv6_flow_hash
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:755,1
    - Dst: ndpi_tfind
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:770,1
    - Dst: ndpi_tfind
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:793,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:812,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:818,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:820,1
    - Dst: memcpy
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:825,1
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:826,1
    - Dst: ndpi_flow_malloc
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:828,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:830,1
    - Dst: memset
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:834,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:836,1
    - Dst: ndpi_tsearch
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:839,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:863,1
    - Dst: ndpi_detection_giveup
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:878,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:882,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:886,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:887,1
    - Dst: ndpi_category_get_name
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:888,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:890,1
    - Dst: ndpi_detection_process_packet
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:896,1
    - Dst: ndpi_is_protocol_detected
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:900,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:909,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:913,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:914,1
    - Dst: ndpi_category_get_name
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:915,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:939,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:956,1
    - Dst: ndpi_ssl_version2str
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:960,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:973,1
    - Dst: ndpi_ssl_version2str
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:978,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 258
    argCount: 3
    argNames:
    - args
    - header
    - packet
    argTypes:
    - uint8_t*
    - struct pcap_pkthdr*
    - uint8_t*
    constantsTouched: []
    func_position:
      end: 993
      start: 526
    functionDepth: 7
    functionLinenumber: 526
    functionLinenumberEnd: 993
    functionName: ndpi_process_packet
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - memset
    - ndpi_ssl_version2str
    - fprintf
    - ndpi_detection_get_l4
    - ndpi_is_protocol_detected
    - print_packet_info
    - ndpi_flowv4_flow_hash
    - ndpi_flow_malloc
    - ntohs
    - __sync_fetch_and_add
    - pcap_datalink
    - ndpi_detection_process_packet
    - ndpi_get_proto_name
    - ndpi_flowv6_flow_hash
    - ndpi_malloc
    - ndpi_detection_giveup
    - ntohl
    - check_for_idle_flows
    - memcpy
    - ndpi_tfind
    - printf
    - ndpi_tsearch
    - ndpi_category_get_name
    linkageType: ''
    returnType: void
    signature: "void ndpi_process_packet(uint8_t * const args,\n                                struct
      pcap_pkthdr const * const header,\n                                uint8_t const
      * const packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcap_loop
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1000,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1003,1
    - Dst: pcap_geterr
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1004,1
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - reader_thread
    argTypes:
    - struct nDPI_reader_thread*
    constantsTouched: []
    func_position:
      end: 1008
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1008
    functionName: run_pcap_loop
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - pcap_loop
    - pcap_geterr
    - fprintf
    - __sync_fetch_and_add
    linkageType: ''
    returnType: void
    signature: void run_pcap_loop(struct nDPI_reader_thread const * const reader_thread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcap_breakloop
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - reader_thread
    argTypes:
    - struct nDPI_reader_thread*
    constantsTouched: []
    func_position:
      end: 1017
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1017
    functionName: break_pcap_loop
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - pcap_breakloop
    linkageType: ''
    returnType: void
    signature: void break_pcap_loop(struct nDPI_reader_thread * const reader_thread)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1024,1
    - Dst: run_pcap_loop
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1025,1
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ndpi_thread_arg
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 1028
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1028
    functionName: processing_thread
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - run_pcap_loop
    - printf
    - __sync_fetch_and_add
    linkageType: ''
    returnType: void
    signature: void * processing_thread(void * const ndpi_thread_arg)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1040
    functionName: processing_threads_error_or_eof
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - __sync_fetch_and_add
    linkageType: ''
    returnType: int
    signature: int processing_threads_error_or_eof(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1049,1
    - Dst: sigdelset
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1050,1
    - Dst: sigdelset
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1051,1
    - Dst: pthread_sigmask
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1052,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1053,1
    - Dst: strerror
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1053,1
    - Dst: pthread_create
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1066,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1069,1
    - Dst: strerror
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1069,1
    - Dst: pthread_sigmask
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1074,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1075,1
    - Dst: strerror
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1075,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1080
    functionName: start_reader_threads
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - strerror
    - fprintf
    - pthread_sigmask
    - sigdelset
    - pthread_create
    - sigfillset
    linkageType: ''
    returnType: int
    signature: int start_reader_threads(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: break_pcap_loop
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1093,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1096,1
    - Dst: pthread_join
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1103,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1104,1
    - Dst: strerror
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1104,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1113,1
    - Dst: free_workflow
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1128,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1131,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1132,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1133,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1134,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1135,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1082
    functionDepth: 4
    functionLinenumber: 1082
    functionLinenumberEnd: 1139
    functionName: stop_reader_threads
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - break_pcap_loop
    - strerror
    - fprintf
    - printf
    - free_workflow
    - pthread_join
    linkageType: ''
    returnType: int
    signature: int stop_reader_threads(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1143,1
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1145,1
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1146,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 1150
      start: 1141
    functionDepth: 0
    functionLinenumber: 1141
    functionLinenumberEnd: 1150
    functionName: sighandler
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 0
    functionsReached:
    - fprintf
    - __sync_fetch_and_add
    linkageType: ''
    returnType: void
    signature: void sighandler(int signum)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1155,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1159,1
    - Dst: ndpi_revision
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1166,1
    - Dst: ndpi_get_api_version
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1166,1
    - Dst: ndpi_get_gcrypt_version
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1167,1
    - Dst: ndpi_get_gcrypt_version
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1167,1
    - Dst: setup_reader_threads
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1169,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1170,1
    - Dst: start_reader_threads
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1174,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1175,1
    - Dst: signal
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1179,1
    - Dst: signal
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1180,1
    - Dst: __sync_fetch_and_add
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1181,1
    - Dst: processing_threads_error_or_eof
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1181,1
    - Dst: sleep
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1182,1
    - Dst: stop_reader_threads
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1185,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiSimpleIntegration.c:1186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1191
      start: 1152
    functionDepth: 6
    functionLinenumber: 1152
    functionLinenumberEnd: 1191
    functionName: main
    functionSourceFile: /src/ndpi/example/ndpiSimpleIntegration.c
    functionUses: 8
    functionsReached:
    - fprintf
    - printf
    - ndpi_get_gcrypt_version
    - ndpi_get_api_version
    - signal
    - __sync_fetch_and_add
    - stop_reader_threads
    - ndpi_revision
    - processing_threads_error_or_eof
    - start_reader_threads
    - sleep
    - setup_reader_threads
    linkageType: ''
    returnType: int
    signature: int main(int argc, char ** argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/example/reader_util.c:133,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/example/reader_util.c:133,1
    - Dst: printf
      Src: /src/ndpi/example/reader_util.c:134,1
    - Dst: HASH_FIND
      Src: /src/ndpi/example/reader_util.c:137,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/reader_util.c:139,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/reader_util.c:142,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:143,1
    - Dst: memcpy
      Src: /src/ndpi/example/reader_util.c:147,1
    - Dst: HASH_ADD
      Src: /src/ndpi/example/reader_util.c:151,1
    - Dst: HASH_FIND
      Src: /src/ndpi/example/reader_util.c:153,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:155,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:156,1
    - Dst: printf
      Src: /src/ndpi/example/reader_util.c:161,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/reader_util.c:161,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/reader_util.c:168,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/reader_util.c:170,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/reader_util.c:174,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/reader_util.c:176,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:178,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/reader_util.c:183,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/reader_util.c:185,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/reader_util.c:189,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/reader_util.c:191,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:193,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 4
    argNames:
    - flow
    - payload
    - payload_len
    - packet_id
    argTypes:
    - struct ndpi_flow_info*
    - u_int8_t*
    - u_int16_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 197
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 197
    functionName: ndpi_analyze_payload
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - HASH_ADD_INT
    - memcpy
    - printf
    - HASH_COUNT
    - HASH_FIND
    - ndpi_free
    - ndpi_isprint
    - ndpi_malloc
    - HASH_ADD
    - ndpi_calloc
    - HASH_FIND_INT
    linkageType: ''
    returnType: int
    signature: "int ndpi_analyze_payload(struct ndpi_flow_info *flow,\n\t\t\t u_int8_t
      *payload,\n\t\t\t u_int16_t payload_len,\n\t\t\t u_int32_t packet_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_min
      Src: /src/ndpi/example/reader_util.c:205,1
    - Dst: printf
      Src: /src/ndpi/example/reader_util.c:209,1
    - Dst: ndpi_analyze_payload
      Src: /src/ndpi/example/reader_util.c:222,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - flow
    - payload
    - payload_len
    - packet_id
    argTypes:
    - struct ndpi_flow_info*
    - u_int8_t*
    - u_int16_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 228
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 228
    functionName: ndpi_payload_analyzer
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ndpi_analyze_payload
    - LOG
    - printf
    - ndpi_min
    linkageType: ''
    returnType: void
    signature: "void ndpi_payload_analyzer(struct ndpi_flow_info *flow,\n\t\t\t   u_int8_t
      *payload, u_int16_t payload_len,\n\t\t\t   u_int32_t packet_id)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: payload_stats_sort_asc
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int payload_stats_sort_asc(void *_a, void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:247,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:250,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/example/reader_util.c:250,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:253,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:254,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:255,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:258,1
    - Dst: ndpi_isprint
      Src: /src/ndpi/example/reader_util.c:258,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:261,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:263,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:264,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:266,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/reader_util.c:270,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:271,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:275,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/reader_util.c:280,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:281,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - p
    - out
    argTypes:
    - struct payload_stats*
    - FILE*
    constantsTouched: []
    func_position:
      end: 288
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 288
    functionName: print_payload_stat
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - HASH_ITER
    - ndpi_isprint
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_payload_stat(struct payload_stats *p, FILE *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:297,1
    - Dst: HASH_SORT
      Src: /src/ndpi/example/reader_util.c:299,1
    - Dst: print_payload_stat
      Src: /src/ndpi/example/reader_util.c:303,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:305,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/reader_util.c:310,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/reader_util.c:311,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:312,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/reader_util.c:319,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/reader_util.c:320,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:321,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/reader_util.c:325,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    constantsTouched: []
    func_position:
      end: 329
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 329
    functionName: ndpi_report_payload_stats
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 1
    functionsReached:
    - fprintf
    - ndpi_free
    - HASH_ITER
    - print_payload_stat
    - HASH_SORT
    - HASH_DEL
    linkageType: ''
    returnType: void
    signature: void ndpi_report_payload_stats(FILE *out)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_flow_free
      Src: /src/ndpi/example/reader_util.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: ndpi_free_flow_info_half
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ndpi_flow_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_flow_info_half(struct ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/reader_util.c:351,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/example/reader_util.c:355,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/example/reader_util.c:356,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/reader_util.c:357,1
    - Dst: strtok
      Src: /src/ndpi/example/reader_util.c:359,1
    - Dst: strtok
      Src: /src/ndpi/example/reader_util.c:359,1
    - Dst: strcmp
      Src: /src/ndpi/example/reader_util.c:367,1
    - Dst: ndpi_bitmask_set_all
      Src: /src/ndpi/example/reader_util.c:369,1
    - Dst: ndpi_bitmask_reset
      Src: /src/ndpi/example/reader_util.c:371,1
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/example/reader_util.c:374,1
    - Dst: strcmp
      Src: /src/ndpi/example/reader_util.c:375,1
    - Dst: strcmp
      Src: /src/ndpi/example/reader_util.c:375,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:376,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/reader_util.c:377,1
    - Dst: ndpi_bitmask_set
      Src: /src/ndpi/example/reader_util.c:381,1
    - Dst: ndpi_bitmask_clear
      Src: /src/ndpi/example/reader_util.c:383,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/reader_util.c:386,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - str
    - bitmask
    - inverted_logic
    argTypes:
    - char*
    - struct ndpi_bitmask*
    - int
    constantsTouched: []
    func_position:
      end: 388
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 388
    functionName: parse_proto_name_list
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 1
    functionsReached:
    - ndpi_bitmask_reset
    - LOG
    - ndpi_get_proto_by_name
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - strtok
    - ndpi_bitmask_clear
    - strcmp
    - ndpi_set_config
    - ndpi_bitmask_set_all
    - ndpi_bitmask_set
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: int
    signature: int parse_proto_name_list(char *str, struct ndpi_bitmask *bitmask,
      int inverted_logic)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/ndpi/example/reader_util.c:396,1
    - Dst: stat
      Src: /src/ndpi/example/reader_util.c:399,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/example/reader_util.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ndpi_str
    argTypes:
    - struct ndpi_detection_module_struct*
    constantsTouched: []
    func_position:
      end: 405
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 405
    functionName: load_public_lists
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - stat
    - ndpi_load_domain_suffixes
    linkageType: ''
    returnType: bool
    signature: bool load_public_lists(struct ndpi_detection_module_struct *ndpi_str)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module_ext
      Src: /src/ndpi/example/reader_util.c:417,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:420,1
    - Dst: ndpi_load_protocols_dir
      Src: /src/ndpi/example/reader_util.c:425,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/reader_util.c:427,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:429,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/reader_util.c:430,1
    - Dst: ndpi_set_user_data
      Src: /src/ndpi/example/reader_util.c:438,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/reader_util.c:441,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/reader_util.c:444,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:445,1
    - Dst: load_public_lists
      Src: /src/ndpi/example/reader_util.c:453,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 6
    argNames:
    - prefs
    - pcap_handle
    - do_init_flows_root
    - serialization_format
    - g_ctx
    - enabled_bitmask
    argTypes:
    - struct ndpi_workflow_prefs*
    - pcap_t*
    - int
    - ndpi_serialization_format
    - struct ndpi_global_context*
    - struct ndpi_bitmask*
    constantsTouched: []
    func_position:
      end: 456
      start: 409
    functionDepth: 8
    functionLinenumber: 409
    functionLinenumberEnd: 456
    functionName: ndpi_workflow_init
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 2
    functionsReached:
    - ndpi_set_user_data
    - ndpi_free
    - LOG
    - load_public_lists
    - ndpi_calloc
    - ndpi_init_detection_module_ext
    - ndpi_exit_detection_module
    - ndpi_load_protocols_dir
    linkageType: ''
    returnType: struct ndpi_workflow
    signature: "struct ndpi_workflow * ndpi_workflow_init(const struct ndpi_workflow_prefs
      * prefs,\n\t\t\t\t\t pcap_t * pcap_handle, int do_init_flows_root,\n\t\t\t\t\t
      ndpi_serialization_format serialization_format,\n\t\t\t\t\t struct ndpi_global_context
      *g_ctx,\n\t\t\t\t\t struct ndpi_bitmask *enabled_bitmask)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_flow_info_free_data
      Src: /src/ndpi/example/reader_util.c:463,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: ndpi_flow_info_freer
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 1
    functionsReached:
    - ndpi_flow_info_free_data
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_flow_info_freer(void *node)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:471,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:476,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:481,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:486,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:491,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:496,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:501,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:506,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:511,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:516,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:521,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:526,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:531,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:536,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:540,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:544,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:548,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:552,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 73
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 555
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 555
    functionName: ndpi_free_flow_tls_data
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_flow_tls_data(struct ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/example/reader_util.c:560,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/example/reader_util.c:561,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/example/reader_util.c:563,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/example/reader_util.c:564,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/example/reader_util.c:566,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:568,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 570
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 570
    functionName: ndpi_free_flow_data_analysis
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ndpi_free_data_analysis
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_free_flow_data_analysis(struct ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_free_flow_info_half
      Src: /src/ndpi/example/reader_util.c:576,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/example/reader_util.c:577,1
    - Dst: ndpi_free_flow_data_analysis
      Src: /src/ndpi/example/reader_util.c:578,1
    - Dst: ndpi_free_flow_tls_data
      Src: /src/ndpi/example/reader_util.c:579,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/example/reader_util.c:582,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/example/reader_util.c:583,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/example/reader_util.c:585,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:588,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:589,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 591
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 591
    functionName: ndpi_flow_info_free_data
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 1
    functionsReached:
    - ndpi_free
    - ndpi_free_flow_info_half
    - ndpi_free_flow_data_analysis
    - ndpi_free_bin
    - ndpi_free_flow_tls_data
    - ndpi_term_serializer
    linkageType: ''
    returnType: void
    signature: void ndpi_flow_info_free_data(struct ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_tdestroy
      Src: /src/ndpi/example/reader_util.c:599,1
    - Dst: ndpi_cache_address_dump
      Src: /src/ndpi/example/reader_util.c:602,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/reader_util.c:604,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:605,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:607,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:608,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:609,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:610,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:611,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:612,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - workflow
    argTypes:
    - struct ndpi_workflow*
    constantsTouched: []
    func_position:
      end: 615
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 615
    functionName: ndpi_workflow_free
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 1
    functionsReached:
    - ndpi_exit_detection_module
    - ndpi_cache_address_dump
    - ndpi_tdestroy
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void ndpi_workflow_free(struct ndpi_workflow * workflow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/ndpi/example/reader_util.c:618,1
    - Dst: ntohl
      Src: /src/ndpi/example/reader_util.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: cmp_n32
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ntohl
    linkageType: ''
    returnType: int
    signature: int cmp_n32(uint32_t a,uint32_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:621,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint16_t
    - uint16_t
    constantsTouched: []
    func_position:
      end: 622
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 622
    functionName: cmp_n16
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: int
    signature: int cmp_n16(uint16_t a,uint16_t b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmp_n32
      Src: /src/ndpi/example/reader_util.c:638,1
    - Dst: cmp_n16
      Src: /src/ndpi/example/reader_util.c:639,1
    - Dst: cmp_n32
      Src: /src/ndpi/example/reader_util.c:640,1
    - Dst: cmp_n16
      Src: /src/ndpi/example/reader_util.c:641,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 644
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 644
    functionName: ndpi_workflow_node_cmp
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - cmp_n32
    - cmp_n16
    linkageType: ''
    returnType: int
    signature: int ndpi_workflow_node_cmp(const void *a, const void *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - flow
    - x
    - len
    - src_to_dst_direction
    argTypes:
    - struct ndpi_flow_info*
    - void*
    - unsigned int
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 692
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 692
    functionName: ndpi_flow_update_byte_count
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ndpi_flow_update_byte_count(struct ndpi_flow_info *flow, const
      void *x,\n                            unsigned int len, u_int8_t src_to_dst_direction)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - flow
    - x
    - len
    - src_to_dst_direction
    argTypes:
    - ndpi_flow_info_t*
    - void*
    - unsigned int
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 727
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 727
    functionName: ndpi_flow_update_byte_dist_mean_var
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ndpi_flow_update_byte_dist_mean_var(ndpi_flow_info_t *flow, const
      void *x,\n                                    unsigned int len, u_int8_t src_to_dst_direction)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:762,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:802,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:802,1
    - Dst: ndpi_min
      Src: /src/ndpi/example/reader_util.c:803,1
    - Dst: ndpi_max
      Src: /src/ndpi/example/reader_util.c:805,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:811,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:811,1
    - Dst: htons
      Src: /src/ndpi/example/reader_util.c:833,1
    - Dst: htons
      Src: /src/ndpi/example/reader_util.c:833,1
    - Dst: ntohl
      Src: /src/ndpi/example/reader_util.c:834,1
    - Dst: ntohl
      Src: /src/ndpi/example/reader_util.c:834,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:835,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:835,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:840,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:841,1
    - Dst: printf
      Src: /src/ndpi/example/reader_util.c:842,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:843,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:843,1
    - Dst: ndpi_tfind
      Src: /src/ndpi/example/reader_util.c:848,1
    - Dst: ndpi_tfind
      Src: /src/ndpi/example/reader_util.c:865,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:870,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/reader_util.c:875,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:878,1
    - Dst: memset
      Src: /src/ndpi/example/reader_util.c:883,1
    - Dst: htons
      Src: /src/ndpi/example/reader_util.c:889,1
    - Dst: htons
      Src: /src/ndpi/example/reader_util.c:889,1
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/example/reader_util.c:891,1
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/example/reader_util.c:892,1
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/example/reader_util.c:893,1
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/example/reader_util.c:894,1
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/example/reader_util.c:895,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/example/reader_util.c:898,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/example/reader_util.c:899,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/example/reader_util.c:901,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:905,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:906,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:909,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:912,1
    - Dst: ndpi_patchIPv6Address
      Src: /src/ndpi/example/reader_util.c:915,1
    - Dst: ndpi_patchIPv6Address
      Src: /src/ndpi/example/reader_util.c:915,1
    - Dst: ndpi_flow_malloc
      Src: /src/ndpi/example/reader_util.c:918,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:919,1
    - Dst: ndpi_flow_info_free_data
      Src: /src/ndpi/example/reader_util.c:920,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:921,1
    - Dst: memset
      Src: /src/ndpi/example/reader_util.c:924,1
    - Dst: ndpi_init_serializer
      Src: /src/ndpi/example/reader_util.c:928,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:931,1
    - Dst: ndpi_flow_info_free_data
      Src: /src/ndpi/example/reader_util.c:932,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:933,1
    - Dst: ndpi_tsearch
      Src: /src/ndpi/example/reader_util.c:938,1
    - Dst: ndpi_flow_info_free_data
      Src: /src/ndpi/example/reader_util.c:939,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:940,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/reader_util.c:952,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/reader_util.c:953,1
    - Dst: ndpi_tdelete
      Src: /src/ndpi/example/reader_util.c:955,1
    - Dst: ndpi_flow_info_free_data
      Src: /src/ndpi/example/reader_util.c:956,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/reader_util.c:957,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 195
    argCount: 18
    argNames:
    - workflow
    - version
    - vlan_id
    - tunnel_type
    - iph
    - iph6
    - ipsize
    - l4_packet_len
    - l4_offset
    - tcph
    - udph
    - sport
    - dport
    - proto
    - payload
    - payload_len
    - src_to_dst_direction
    - when
    argTypes:
    - struct ndpi_workflow*
    - u_int8_t
    - u_int16_t
    - ndpi_packet_tunnel
    - struct ndpi_iphdr*
    - struct ndpi_ipv6hdr*
    - u_int16_t
    - u_int16_t
    - u_int16_t
    - struct ndpi_tcphdr**
    - struct ndpi_udphdr**
    - u_int16_t*
    - u_int16_t*
    - u_int8_t*
    - u_int8_t**
    - u_int16_t*
    - u_int8_t*
    - pkt_timeval
    constantsTouched: []
    func_position:
      end: 1014
      start: 731
    functionDepth: 4
    functionLinenumber: 731
    functionLinenumberEnd: 1014
    functionName: get_ndpi_flow_info
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - memset
    - ndpi_free
    - ndpi_max
    - LOG
    - htons
    - ndpi_flow_malloc
    - ntohs
    - ndpi_patchIPv6Address
    - ndpi_flow_info_free_data
    - inet_ntop
    - ndpi_malloc
    - ndpi_calloc
    - ndpi_init_serializer
    - ntohl
    - ndpi_alloc_data_analysis
    - printf
    - ndpi_tfind
    - ndpi_min
    - ndpi_tdelete
    - ndpi_tsearch
    - ndpi_init_bin
    linkageType: ''
    returnType: struct ndpi_flow_info
    signature: "struct ndpi_flow_info *get_ndpi_flow_info(struct ndpi_workflow * workflow,\n\t\t\t\t\t\t
      const u_int8_t version,\n\t\t\t\t\t\t u_int16_t vlan_id,\n\t\t\t\t\t\t ndpi_packet_tunnel
      tunnel_type,\n\t\t\t\t\t\t const struct ndpi_iphdr *iph,\n\t\t\t\t\t\t const
      struct ndpi_ipv6hdr *iph6,\n\t\t\t\t\t\t u_int16_t ipsize,\n\t\t\t\t\t\t u_int16_t
      l4_packet_len,\n\t\t\t\t\t\t u_int16_t l4_offset,\n\t\t\t\t\t\t struct ndpi_tcphdr
      **tcph,\n\t\t\t\t\t\t struct ndpi_udphdr **udph,\n\t\t\t\t\t\t u_int16_t *sport,
      u_int16_t *dport,\n\t\t\t\t\t\t u_int8_t *proto,\n\t\t\t\t\t\t u_int8_t **payload,\n\t\t\t\t\t\t
      u_int16_t *payload_len,\n\t\t\t\t\t\t u_int8_t *src_to_dst_direction,\n                                                 pkt_timeval
      when)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/example/reader_util.c:1035,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:1040,1
    - Dst: ndpi_handle_ipv6_extension_headers
      Src: /src/ndpi/example/reader_util.c:1044,1
    - Dst: get_ndpi_flow_info
      Src: /src/ndpi/example/reader_util.c:1049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 14
    argNames:
    - workflow
    - vlan_id
    - tunnel_type
    - iph6
    - ipsize
    - tcph
    - udph
    - sport
    - dport
    - proto
    - payload
    - payload_len
    - src_to_dst_direction
    - when
    argTypes:
    - struct ndpi_workflow*
    - u_int16_t
    - ndpi_packet_tunnel
    - struct ndpi_ipv6hdr*
    - u_int16_t
    - struct ndpi_tcphdr**
    - struct ndpi_udphdr**
    - u_int16_t*
    - u_int16_t*
    - u_int8_t*
    - u_int8_t**
    - u_int16_t*
    - u_int8_t*
    - pkt_timeval
    constantsTouched: []
    func_position:
      end: 1055
      start: 1018
    functionDepth: 5
    functionLinenumber: 1018
    functionLinenumberEnd: 1055
    functionName: get_ndpi_flow_info6
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - get_ndpi_flow_info
    - memset
    - ndpi_handle_ipv6_extension_headers
    - ntohs
    linkageType: ''
    returnType: struct ndpi_flow_info
    signature: "struct ndpi_flow_info *get_ndpi_flow_info6(struct ndpi_workflow *
      workflow,\n\t\t\t\t\t\t  u_int16_t vlan_id,\n\t\t\t\t\t\t  ndpi_packet_tunnel
      tunnel_type,\n\t\t\t\t\t\t  const struct ndpi_ipv6hdr *iph6,\n\t\t\t\t\t\t  u_int16_t
      ipsize,\n\t\t\t\t\t\t  struct ndpi_tcphdr **tcph,\n\t\t\t\t\t\t  struct ndpi_udphdr
      **udph,\n\t\t\t\t\t\t  u_int16_t *sport, u_int16_t *dport,\n\t\t\t\t\t\t  u_int8_t
      *proto,\n\t\t\t\t\t\t  u_int8_t **payload,\n\t\t\t\t\t\t  u_int16_t *payload_len,\n\t\t\t\t\t\t
      \ u_int8_t *src_to_dst_direction,\n                                                  pkt_timeval
      when)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - flow
    - id
    argTypes:
    - struct ndpi_flow_info*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1065
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1065
    functionName: is_ndpi_proto
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t is_ndpi_proto(struct ndpi_flow_info *flow, u_int16_t id)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 1073
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1073
    functionName: correct_csv_data_field
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void correct_csv_data_field(char* data)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - plen
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 1087
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1087
    functionName: plen2slot
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int8_t
    signature: u_int8_t plen2slot(u_int16_t plen)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_serializer
      Src: /src/ndpi/example/reader_util.c:1096,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/example/reader_util.c:1099,1
    - Dst: ndpi_serialize_flow_fingerprint
      Src: /src/ndpi/example/reader_util.c:1100,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/example/reader_util.c:1101,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/reader_util.c:1107,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1108,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/reader_util.c:1109,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:1109,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1110,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/reader_util.c:1111,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:1111,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1112,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/reader_util.c:1113,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1118,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/example/reader_util.c:1120,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:1121,1
    - Dst: ndpi_term_serializer
      Src: /src/ndpi/example/reader_util.c:1124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - workflow
    - flow
    argTypes:
    - struct ndpi_workflow*
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 1125
      start: 1091
    functionDepth: 8
    functionLinenumber: 1091
    functionLinenumberEnd: 1125
    functionName: dump_flow_fingerprint
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_get_buffer
    - ndpi_serialize_string_string
    - fprintf
    - ntohs
    - ndpi_serialize_flow_fingerprint
    - ndpi_protocol2name
    - ndpi_init_serializer
    - ndpi_serialize_string_uint32
    - ndpi_term_serializer
    - ndpi_serialize_end_of_block
    - ndpi_serialize_start_of_block
    linkageType: ''
    returnType: void
    signature: "void dump_flow_fingerprint(struct ndpi_workflow * workflow,\n\t\t\t\t
      \ struct ndpi_flow_info *flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/ndpi/example/reader_util.c:1139,1
    - Dst: ndpi_realloc
      Src: /src/ndpi/example/reader_util.c:1144,1
    - Dst: memcpy
      Src: /src/ndpi/example/reader_util.c:1151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - list
    - ap
    argTypes:
    - ndpi_address_port_list*
    - ndpi_address_port*
    constantsTouched: []
    func_position:
      end: 1152
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1152
    functionName: add_to_address_port_list
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ndpi_realloc
    - memcmp
    - memcpy
    linkageType: ''
    returnType: void
    signature: void add_to_address_port_list(ndpi_address_port_list *list, ndpi_address_port
      *ap)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1180,1
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1181,1
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1182,1
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1183,1
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1184,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 1190
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1190
    functionName: process_ndpi_monitoring_info
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - add_to_address_port_list
    linkageType: ''
    returnType: void
    signature: void process_ndpi_monitoring_info(struct ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/example/reader_util.c:1202,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/example/reader_util.c:1208,1
    - Dst: ndpi_serialize_start_of_list
      Src: /src/ndpi/example/reader_util.c:1211,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1214,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/example/reader_util.c:1215,1
    - Dst: ndpi_serialize_end_of_list
      Src: /src/ndpi/example/reader_util.c:1218,1
    - Dst: ndpi_serialize_start_of_list
      Src: /src/ndpi/example/reader_util.c:1222,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1225,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/example/reader_util.c:1226,1
    - Dst: ndpi_serialize_end_of_list
      Src: /src/ndpi/example/reader_util.c:1229,1
    - Dst: ndpi_serialize_start_of_list
      Src: /src/ndpi/example/reader_util.c:1233,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1236,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/example/reader_util.c:1237,1
    - Dst: ndpi_serialize_end_of_list
      Src: /src/ndpi/example/reader_util.c:1240,1
    - Dst: ndpi_serialize_start_of_list
      Src: /src/ndpi/example/reader_util.c:1244,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1247,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/example/reader_util.c:1248,1
    - Dst: ndpi_serialize_end_of_list
      Src: /src/ndpi/example/reader_util.c:1251,1
    - Dst: ndpi_serialize_start_of_list
      Src: /src/ndpi/example/reader_util.c:1255,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1258,1
    - Dst: print_ndpi_address_port
      Src: /src/ndpi/example/reader_util.c:1259,1
    - Dst: ndpi_serialize_end_of_list
      Src: /src/ndpi/example/reader_util.c:1262,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/example/reader_util.c:1265,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/example/reader_util.c:1270,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 1271
      start: 1194
    functionDepth: 8
    functionLinenumber: 1194
    functionLinenumberEnd: 1271
    functionName: serialize_monitoring_metadata
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ndpi_serialize_string_string
    - print_ndpi_address_port
    - ndpi_serialize_end_of_list
    - ndpi_serialize_start_of_list
    - ndpi_serialize_end_of_block
    - ndpi_serialize_start_of_block
    linkageType: ''
    returnType: void
    signature: void serialize_monitoring_metadata(struct ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_get_flow_risk_info
      Src: /src/ndpi/example/reader_util.c:1283,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1286,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1294,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1297,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1298,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1304,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1306,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1309,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1310,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1311,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1312,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/reader_util.c:1317,1
    - Dst: snprintf
      Src: /src/ndpi/example/reader_util.c:1321,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1332,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1334,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1336,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1338,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1340,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1344,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1344,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1346,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1348,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1350,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1352,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1356,1
    - Dst: strncat
      Src: /src/ndpi/example/reader_util.c:1362,1
    - Dst: strncat
      Src: /src/ndpi/example/reader_util.c:1367,1
    - Dst: strlen
      Src: /src/ndpi/example/reader_util.c:1369,1
    - Dst: strncat
      Src: /src/ndpi/example/reader_util.c:1372,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1376,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:1381,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1384,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1385,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1386,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1389,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1393,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:1397,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:1400,1
    - Dst: ndpi_patchIPv6Address
      Src: /src/ndpi/example/reader_util.c:1403,1
    - Dst: strcpy
      Src: /src/ndpi/example/reader_util.c:1407,1
    - Dst: strcpy
      Src: /src/ndpi/example/reader_util.c:1410,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:1422,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/reader_util.c:1424,1
    - Dst: printf
      Src: /src/ndpi/example/reader_util.c:1427,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1433,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1435,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1438,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1440,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1443,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1444,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1445,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1446,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1448,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1451,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1458,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1461,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1465,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1467,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1470,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1473,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1477,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1480,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1484,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1487,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1489,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1491,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1493,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1496,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1502,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1504,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1506,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1507,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1508,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1511,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1513,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1515,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1519,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1520,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1521,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1522,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1523,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1524,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1525,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1534,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1538,1
    - Dst: strdup
      Src: /src/ndpi/example/reader_util.c:1542,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1544,1
    - Dst: memcpy
      Src: /src/ndpi/example/reader_util.c:1550,1
    - Dst: strdup
      Src: /src/ndpi/example/reader_util.c:1558,1
    - Dst: strdup
      Src: /src/ndpi/example/reader_util.c:1561,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1566,1
    - Dst: correct_csv_data_field
      Src: /src/ndpi/example/reader_util.c:1567,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1571,1
    - Dst: correct_csv_data_field
      Src: /src/ndpi/example/reader_util.c:1572,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1576,1
    - Dst: correct_csv_data_field
      Src: /src/ndpi/example/reader_util.c:1577,1
    - Dst: ndpi_reset_bin
      Src: /src/ndpi/example/reader_util.c:1582,1
    - Dst: abs
      Src: /src/ndpi/example/reader_util.c:1585,1
    - Dst: ndpi_inc_bin
      Src: /src/ndpi/example/reader_util.c:1588,1
    - Dst: plen2slot
      Src: /src/ndpi/example/reader_util.c:1588,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1593,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1596,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1597,1
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1601,1
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1602,1
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1603,1
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1604,1
    - Dst: add_to_address_port_list
      Src: /src/ndpi/example/reader_util.c:1605,1
    - Dst: snprintf
      Src: /src/ndpi/example/reader_util.c:1613,1
    - Dst: ndpi_print_os_hint
      Src: /src/ndpi/example/reader_util.c:1614,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1615,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1620,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1621,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1622,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1624,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1628,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1629,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1630,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1631,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1632,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1633,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1634,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1637,1
    - Dst: memcpy
      Src: /src/ndpi/example/reader_util.c:1638,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/reader_util.c:1640,1
    - Dst: memset
      Src: /src/ndpi/example/reader_util.c:1648,1
    - Dst: memcpy
      Src: /src/ndpi/example/reader_util.c:1653,1
    - Dst: ndpi_cache_address_find
      Src: /src/ndpi/example/reader_util.c:1655,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/reader_util.c:1658,1
    - Dst: ndpi_flow2json
      Src: /src/ndpi/example/reader_util.c:1663,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:1671,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/reader_util.c:1675,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/reader_util.c:1676,1
    - Dst: serialize_monitoring_metadata
      Src: /src/ndpi/example/reader_util.c:1679,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/reader_util.c:1683,1
    - Dst: struct ndpi_workflow*::flow_callback
      Src: /src/ndpi/example/reader_util.c:1691,1
    - Dst: dump_flow_fingerprint
      Src: /src/ndpi/example/reader_util.c:1694,1
    - Dst: ndpi_free_flow_info_half
      Src: /src/ndpi/example/reader_util.c:1696,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 262
    argCount: 2
    argNames:
    - workflow
    - flow
    argTypes:
    - struct ndpi_workflow*
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 1698
      start: 1275
    functionDepth: 9
    functionLinenumber: 1275
    functionLinenumberEnd: 1698
    functionName: process_ndpi_collected_info
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 1
    functionsReached:
    - memset
    - LOG
    - add_to_address_port_list
    - correct_csv_data_field
    - snprintf
    - strlen
    - ndpi_reset_bin
    - ndpi_patchIPv6Address
    - ndpi_serialize_string_uint32
    - ndpi_strdup
    - serialize_monitoring_metadata
    - inet_ntop
    - plen2slot
    - ndpi_print_os_hint
    - struct ndpi_workflow*::flow_callback
    - ndpi_malloc
    - ndpi_free_flow_info_half
    - abs
    - ndpi_get_flow_risk_info
    - dump_flow_fingerprint
    - ndpi_flow2json
    - ndpi_inc_bin
    - ndpi_snprintf
    - ndpi_serialize_string_string
    - memcpy
    - printf
    - strdup
    - is_ndpi_proto
    - strncat
    - ndpi_cache_address_find
    - strcpy
    linkageType: ''
    returnType: void
    signature: void process_ndpi_collected_info(struct ndpi_workflow * workflow, struct
      ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/example/reader_util.c:1709,1
    - Dst: memset
      Src: /src/ndpi/example/reader_util.c:1710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 1713
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1713
    functionName: ndpi_clear_entropy_stats
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ndpi_clear_entropy_stats(struct ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - flow
    - tcp
    - src_to_dst_direction
    argTypes:
    - struct ndpi_flow_info*
    - struct ndpi_tcphdr*
    - u_int8_t
    constantsTouched: []
    func_position:
      end: 1748
      start: 1715
    functionDepth: 0
    functionLinenumber: 1715
    functionLinenumberEnd: 1748
    functionName: update_tcp_flags_count
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_tcp_flags_count(struct ndpi_flow_info* flow, struct ndpi_tcphdr*
      tcp, u_int8_t src_to_dst_direction)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_ndpi_flow_info
      Src: /src/ndpi/example/reader_util.c:1786,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:1789,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:1789,1
    - Dst: get_ndpi_flow_info6
      Src: /src/ndpi/example/reader_util.c:1795,1
    - Dst: update_tcp_flags_count
      Src: /src/ndpi/example/reader_util.c:1810,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/example/reader_util.c:1822,1
    - Dst: ndpi_timeval_to_milliseconds
      Src: /src/ndpi/example/reader_util.c:1827,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/example/reader_util.c:1830,1
    - Dst: memcpy
      Src: /src/ndpi/example/reader_util.c:1834,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/example/reader_util.c:1838,1
    - Dst: ndpi_timeval_to_milliseconds
      Src: /src/ndpi/example/reader_util.c:1843,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/example/reader_util.c:1845,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/example/reader_util.c:1849,1
    - Dst: memcpy
      Src: /src/ndpi/example/reader_util.c:1851,1
    - Dst: ndpi_inc_bin
      Src: /src/ndpi/example/reader_util.c:1855,1
    - Dst: plen2slot
      Src: /src/ndpi/example/reader_util.c:1855,1
    - Dst: ndpi_timer_sub
      Src: /src/ndpi/example/reader_util.c:1859,1
    - Dst: ndpi_timeval_to_milliseconds
      Src: /src/ndpi/example/reader_util.c:1862,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/example/reader_util.c:1864,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/example/reader_util.c:1867,1
    - Dst: memcpy
      Src: /src/ndpi/example/reader_util.c:1870,1
    - Dst: ndpi_inc_bin
      Src: /src/ndpi/example/reader_util.c:1874,1
    - Dst: plen2slot
      Src: /src/ndpi/example/reader_util.c:1874,1
    - Dst: ndpi_inc_bin
      Src: /src/ndpi/example/reader_util.c:1884,1
    - Dst: plen2slot
      Src: /src/ndpi/example/reader_util.c:1884,1
    - Dst: ndpi_payload_analyzer
      Src: /src/ndpi/example/reader_util.c:1889,1
    - Dst: ndpi_flow_update_byte_count
      Src: /src/ndpi/example/reader_util.c:1895,1
    - Dst: ndpi_flow_update_byte_dist_mean_var
      Src: /src/ndpi/example/reader_util.c:1896,1
    - Dst: ndpi_classify
      Src: /src/ndpi/example/reader_util.c:1900,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:1903,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:1903,1
    - Dst: ndpi_classify
      Src: /src/ndpi/example/reader_util.c:1909,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:1911,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:1911,1
    - Dst: ndpi_clear_entropy_stats
      Src: /src/ndpi/example/reader_util.c:1925,1
    - Dst: memset
      Src: /src/ndpi/example/reader_util.c:1928,1
    - Dst: memset
      Src: /src/ndpi/example/reader_util.c:1929,1
    - Dst: memset
      Src: /src/ndpi/example/reader_util.c:1930,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1937,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1938,1
    - Dst: ndpi_has_human_readeable_string
      Src: /src/ndpi/example/reader_util.c:1944,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1952,1
    - Dst: is_ndpi_proto
      Src: /src/ndpi/example/reader_util.c:1953,1
    - Dst: printf
      Src: /src/ndpi/example/reader_util.c:1969,1
    - Dst: memset
      Src: /src/ndpi/example/reader_util.c:1980,1
    - Dst: ndpi_detection_process_packet
      Src: /src/ndpi/example/reader_util.c:1985,1
    - Dst: process_ndpi_monitoring_info
      Src: /src/ndpi/example/reader_util.c:1989,1
    - Dst: ndpi_extra_dissection_possible
      Src: /src/ndpi/example/reader_util.c:1993,1
    - Dst: ndpi_detection_giveup
      Src: /src/ndpi/example/reader_util.c:2002,1
    - Dst: process_ndpi_collected_info
      Src: /src/ndpi/example/reader_util.c:2007,1
    - Dst: fopen
      Src: /src/ndpi/example/reader_util.c:2020,1
    - Dst: fprintf
      Src: /src/ndpi/example/reader_util.c:2023,1
    - Dst: fclose
      Src: /src/ndpi/example/reader_util.c:2024,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 139
    argCount: 13
    argNames:
    - workflow
    - time_ms
    - vlan_id
    - tunnel_type
    - iph
    - iph6
    - ipsize
    - rawsize
    - header
    - packet
    - when
    - flow_risk
    - flow_ext
    argTypes:
    - struct ndpi_workflow*
    - u_int64_t
    - u_int16_t
    - ndpi_packet_tunnel
    - struct ndpi_iphdr*
    - struct ndpi_ipv6hdr*
    - u_int16_t
    - u_int16_t
    - struct pcap_pkthdr*
    - u_char*
    - pkt_timeval
    - ndpi_risk*
    - struct ndpi_flow_info**
    constantsTouched: []
    func_position:
      end: 2033
      start: 1759
    functionDepth: 10
    functionLinenumber: 1759
    functionLinenumberEnd: 2033
    functionName: packet_processing
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ndpi_timer_sub
    - memset
    - fprintf
    - get_ndpi_flow_info
    - ndpi_timeval_to_milliseconds
    - ndpi_payload_analyzer
    - ntohs
    - get_ndpi_flow_info6
    - process_ndpi_monitoring_info
    - ndpi_data_add_value
    - plen2slot
    - ndpi_clear_entropy_stats
    - ndpi_flow_update_byte_dist_mean_var
    - process_ndpi_collected_info
    - ndpi_detection_process_packet
    - ndpi_flow_update_byte_count
    - ndpi_detection_giveup
    - fopen
    - ndpi_has_human_readeable_string
    - ndpi_inc_bin
    - ndpi_classify
    - memcpy
    - printf
    - update_tcp_flags_count
    - fclose
    - is_ndpi_proto
    - ndpi_extra_dissection_possible
    linkageType: ''
    returnType: struct ndpi_proto
    signature: "struct ndpi_proto packet_processing(struct ndpi_workflow * workflow,\n\t\t\t\t\t
      \  const u_int64_t time_ms,\n\t\t\t\t\t   u_int16_t vlan_id,\n\t\t\t\t\t   ndpi_packet_tunnel
      tunnel_type,\n\t\t\t\t\t   const struct ndpi_iphdr *iph,\n\t\t\t\t\t   struct
      ndpi_ipv6hdr *iph6,\n\t\t\t\t\t   u_int16_t ipsize, u_int16_t rawsize,\n\t\t\t\t\t
      \  const struct pcap_pkthdr *header,\n\t\t\t\t\t   const u_char *packet,\n\t\t\t\t\t
      \  pkt_timeval when,\n\t\t\t\t\t   ndpi_risk *flow_risk,\n\t\t\t\t\t   struct
      ndpi_flow_info **flow_ext)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - datalink_type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2060
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2060
    functionName: ndpi_is_datalink_supported
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ndpi_is_datalink_supported(int datalink_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2066,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 4
    argNames:
    - header
    - packet
    - ip_offset
    - ip_len
    argTypes:
    - struct pcap_pkthdr*
    - u_char*
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2102
      start: 2062
    functionDepth: 0
    functionLinenumber: 2062
    functionLinenumberEnd: 2102
    functionName: ndpi_is_valid_vxlan
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: bool
    signature: bool ndpi_is_valid_vxlan(const struct pcap_pkthdr *header, const u_char
      *packet, u_int16_t ip_offset, u_int16_t ip_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ip_offset
    - ip_len
    argTypes:
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2106
      start: 2104
    functionDepth: 0
    functionLinenumber: 2104
    functionLinenumberEnd: 2106
    functionName: ndpi_skip_vxlan
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int
    signature: u_int ndpi_skip_vxlan(u_int16_t ip_offset, u_int16_t ip_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_GRE_IS_FLAGS
      Src: /src/ndpi/example/reader_util.c:2122,1
    - Dst: NDPI_GRE_IS_REC
      Src: /src/ndpi/example/reader_util.c:2124,1
    - Dst: NDPI_GRE_IS_VERSION_0
      Src: /src/ndpi/example/reader_util.c:2127,1
    - Dst: NDPI_GRE_IS_CSUM
      Src: /src/ndpi/example/reader_util.c:2128,1
    - Dst: NDPI_GRE_IS_KEY
      Src: /src/ndpi/example/reader_util.c:2134,1
    - Dst: NDPI_GRE_IS_SEQ
      Src: /src/ndpi/example/reader_util.c:2139,1
    - Dst: NDPI_GRE_IS_VERSION_1
      Src: /src/ndpi/example/reader_util.c:2144,1
    - Dst: NDPI_GRE_IS_CSUM
      Src: /src/ndpi/example/reader_util.c:2145,1
    - Dst: NDPI_GRE_IS_ROUTING
      Src: /src/ndpi/example/reader_util.c:2147,1
    - Dst: NDPI_GRE_IS_KEY
      Src: /src/ndpi/example/reader_util.c:2149,1
    - Dst: NDPI_GRE_IS_STRICT
      Src: /src/ndpi/example/reader_util.c:2151,1
    - Dst: NDPI_GRE_IS_SEQ
      Src: /src/ndpi/example/reader_util.c:2159,1
    - Dst: NDPI_GRE_IS_ACK
      Src: /src/ndpi/example/reader_util.c:2164,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 53
    argCount: 4
    argNames:
    - header
    - packet
    - ip_offset
    - ip_len
    argTypes:
    - struct pcap_pkthdr*
    - u_char*
    - u_int16_t
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2173
      start: 2108
    functionDepth: 0
    functionLinenumber: 2108
    functionLinenumberEnd: 2173
    functionName: ndpi_is_valid_gre_tunnel
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - NDPI_GRE_IS_KEY
    - NDPI_GRE_IS_CSUM
    - NDPI_GRE_IS_VERSION_1
    - NDPI_GRE_IS_SEQ
    - NDPI_GRE_IS_ACK
    - NDPI_GRE_IS_REC
    - NDPI_GRE_IS_STRICT
    - NDPI_GRE_IS_FLAGS
    - NDPI_GRE_IS_ROUTING
    - NDPI_GRE_IS_VERSION_0
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t ndpi_is_valid_gre_tunnel(const struct pcap_pkthdr *header,\n
      \               const u_char *packet, const u_int16_t ip_offset,\n                const
      u_int16_t ip_len)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_cache_address_flush_expired
      Src: /src/ndpi/example/reader_util.c:2235,1
    - Dst: pcap_datalink
      Src: /src/ndpi/example/reader_util.c:2258,1
    - Dst: ntohl
      Src: /src/ndpi/example/reader_util.c:2269,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2281,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2290,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2293,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2321,1
    - Dst: FCF_TYPE
      Src: /src/ndpi/example/reader_util.c:2373,1
    - Dst: FCF_TO_DS
      Src: /src/ndpi/example/reader_util.c:2374,1
    - Dst: FCF_FROM_DS
      Src: /src/ndpi/example/reader_util.c:2374,1
    - Dst: FCF_TO_DS
      Src: /src/ndpi/example/reader_util.c:2375,1
    - Dst: FCF_FROM_DS
      Src: /src/ndpi/example/reader_util.c:2375,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2385,1
    - Dst: le16toh
      Src: /src/ndpi/example/reader_util.c:2405,1
    - Dst: le32toh
      Src: /src/ndpi/example/reader_util.c:2406,1
    - Dst: printf
      Src: /src/ndpi/example/reader_util.c:2418,1
    - Dst: ntohl
      Src: /src/ndpi/example/reader_util.c:2449,1
    - Dst: ntohl
      Src: /src/ndpi/example/reader_util.c:2455,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2491,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:2499,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:2524,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2537,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2539,1
    - Dst: ndpi_handle_ipv6_extension_headers
      Src: /src/ndpi/example/reader_util.c:2545,1
    - Dst: LOG
      Src: /src/ndpi/example/reader_util.c:2565,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2579,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2579,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2638,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2692,1
    - Dst: ndpi_is_valid_vxlan
      Src: /src/ndpi/example/reader_util.c:2701,1
    - Dst: ndpi_skip_vxlan
      Src: /src/ndpi/example/reader_util.c:2703,1
    - Dst: ndpi_is_valid_gre_tunnel
      Src: /src/ndpi/example/reader_util.c:2711,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2714,1
    - Dst: ntohs
      Src: /src/ndpi/example/reader_util.c:2714,1
    - Dst: packet_processing
      Src: /src/ndpi/example/reader_util.c:2730,1
    CyclomaticComplexity: 135
    EdgeCount: 135
    ICount: 359
    argCount: 5
    argNames:
    - workflow
    - header
    - packet
    - flow_risk
    - flow
    argTypes:
    - struct ndpi_workflow*
    - struct pcap_pkthdr*
    - u_char*
    - ndpi_risk*
    - struct ndpi_flow_info**
    constantsTouched: []
    func_position:
      end: 2734
      start: 2177
    functionDepth: 11
    functionLinenumber: 2177
    functionLinenumberEnd: 2734
    functionName: ndpi_workflow_process_packet
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 2
    functionsReached:
    - pcap_datalink
    - ndpi_skip_vxlan
    - ntohs
    - ndpi_cache_address_flush_expired
    - le16toh
    - printf
    - LOG
    - FCF_FROM_DS
    - ndpi_handle_ipv6_extension_headers
    - FCF_TYPE
    - ntohl
    - FCF_TO_DS
    - ndpi_is_valid_vxlan
    - packet_processing
    - le32toh
    - ndpi_is_valid_gre_tunnel
    linkageType: ''
    returnType: struct ndpi_proto
    signature: "struct ndpi_proto ndpi_workflow_process_packet(struct ndpi_workflow
      * workflow,\n\t\t\t\t\t       const struct pcap_pkthdr *header,\n\t\t\t\t\t
      \      const u_char *packet,\n\t\t\t\t\t       ndpi_risk *flow_risk,\n\t\t\t\t\t
      \      struct ndpi_flow_info **flow)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rte_eth_dev_configure
      Src: /src/ndpi/example/reader_util.c:2760,1
    - Dst: rte_eth_rx_queue_setup
      Src: /src/ndpi/example/reader_util.c:2766,1
    - Dst: rte_eth_dev_socket_id
      Src: /src/ndpi/example/reader_util.c:2766,1
    - Dst: rte_eth_tx_queue_setup
      Src: /src/ndpi/example/reader_util.c:2772,1
    - Dst: rte_eth_dev_socket_id
      Src: /src/ndpi/example/reader_util.c:2772,1
    - Dst: rte_eth_dev_start
      Src: /src/ndpi/example/reader_util.c:2777,1
    - Dst: rte_eth_promiscuous_enable
      Src: /src/ndpi/example/reader_util.c:2782,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - port
    - mbuf_pool
    argTypes:
    - int
    - struct rte_mempool*
    constantsTouched: []
    func_position:
      end: 2785
      start: 2753
    functionDepth: 0
    functionLinenumber: 2753
    functionLinenumberEnd: 2785
    functionName: dpdk_port_init
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - rte_eth_dev_configure
    - rte_eth_dev_socket_id
    - rte_eth_promiscuous_enable
    - rte_eth_rx_queue_setup
    - rte_eth_tx_queue_setup
    - rte_eth_dev_start
    linkageType: ''
    returnType: int
    signature: int dpdk_port_init(int port, struct rte_mempool *mbuf_pool)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rte_eth_dev_stop
      Src: /src/ndpi/example/reader_util.c:2788,1
    - Dst: rte_eth_dev_close
      Src: /src/ndpi/example/reader_util.c:2789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 2791
      start: 2787
    functionDepth: 0
    functionLinenumber: 2787
    functionLinenumberEnd: 2791
    functionName: dpdk_port_deinit
    functionSourceFile: /src/ndpi/example/reader_util.c
    functionUses: 0
    functionsReached:
    - rte_eth_dev_close
    - rte_eth_dev_stop
    linkageType: ''
    returnType: int
    signature: int dpdk_port_deinit(int port)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - workflow
    - callback
    - userdata
    argTypes:
    - struct ndpi_workflow*
    - ndpi_workflow_callback_ptr
    - void*
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: ndpi_workflow_set_flow_callback
    functionSourceFile: /src/ndpi/example/reader_util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndpi_workflow_set_flow_callback(struct ndpi_workflow * workflow,
      ndpi_workflow_callback_ptr callback, void * userdata)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: ndpi_packet_trailer
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PACK_ON
    signature: PACK_ON ndpi_packet_trailer
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: reader_slot_malloc_bins
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u_int32_t
    signature: u_int32_t reader_slot_malloc_bins(u_int64_t v)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_inc_bin
      Src: /src/ndpi/example/ndpiReader.c:340,1
    - Dst: reader_slot_malloc_bins
      Src: /src/ndpi/example/ndpiReader.c:340,1
    - Dst: malloc
      Src: /src/ndpi/example/ndpiReader.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: ndpi_malloc_wrapper
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - reader_slot_malloc_bins
    - malloc
    - ndpi_inc_bin
    linkageType: ''
    returnType: void
    signature: void *ndpi_malloc_wrapper(size_t size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/ndpi/example/ndpiReader.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - freeable
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: free_wrapper
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_wrapper(void *freeable)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_bin
      Src: /src/ndpi/example/ndpiReader.c:372,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/example/ndpiReader.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 376
    functionName: init_doh_bins
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_init_bin
    - ndpi_free_bin
    linkageType: ''
    returnType: void
    signature: void init_doh_bins()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bin_similarity
      Src: /src/ndpi/example/ndpiReader.c:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bin
    - similarity
    argTypes:
    - struct ndpi_bin*
    - float*
    constantsTouched: []
    func_position:
      end: 399
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 399
    functionName: check_bin_doh_similarity
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_bin_similarity
    linkageType: ''
    returnType: u_int
    signature: u_int check_bin_doh_similarity(struct ndpi_bin *bin, float *similarity)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:414,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:415,1
    - Dst: ndpi_match_string_subprotocol
      Src: /src/ndpi/example/ndpiReader.c:417,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:418,1
    - Dst: memset
      Src: /src/ndpi/example/ndpiReader.c:421,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/ndpiReader.c:427,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:430,1
    - Dst: ndpi_get_proto_breed_name
      Src: /src/ndpi/example/ndpiReader.c:434,1
    - Dst: ndpi_category_get_name
      Src: /src/ndpi/example/ndpiReader.c:435,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:437,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - testChar
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 440
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 440
    functionName: ndpiCheckHostStringMatch
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - memset
    - printf
    - ndpi_protocol2name
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_get_proto_breed_name
    - ndpi_match_string_subprotocol
    - ndpi_exit_detection_module
    - strlen
    - ndpi_category_get_name
    linkageType: ''
    returnType: void
    signature: void ndpiCheckHostStringMatch(char *testChar)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - ndpi_cfg_error
    constantsTouched: []
    func_position:
      end: 464
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 464
    functionName: ndpi_cfg_error2string
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      ndpi_cfg_error2string(ndpi_cfg_error const err)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:480,1
    - Dst: ndpi_load_protocols_file
      Src: /src/ndpi/example/ndpiReader.c:483,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/example/ndpiReader.c:486,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:489,1
    - Dst: ndpi_cfg_error2string
      Src: /src/ndpi/example/ndpiReader.c:491,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:492,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:496,1
    - Dst: strtok_r
      Src: /src/ndpi/example/ndpiReader.c:498,1
    - Dst: inet_addr
      Src: /src/ndpi/example/ndpiReader.c:502,1
    - Dst: strtok_r
      Src: /src/ndpi/example/ndpiReader.c:503,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:505,1
    - Dst: ndpi_network_port_ptree_match
      Src: /src/ndpi/example/ndpiReader.c:506,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:506,1
    - Dst: memset
      Src: /src/ndpi/example/ndpiReader.c:509,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/example/ndpiReader.c:510,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/ndpiReader.c:512,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:515,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:518,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:521,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - testChar
    argTypes:
    - char*
    constantsTouched: []
    func_position:
      end: 522
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 522
    functionName: ndpiCheckIPMatch
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - memset
    - ndpi_map_ndpi_id_to_user_proto_id
    - fprintf
    - atoi
    - ndpi_cfg_error2string
    - ndpi_network_port_ptree_match
    - printf
    - ndpi_protocol2name
    - ndpi_load_protocols_file
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - exit
    - inet_addr
    - ndpi_set_config
    - ndpi_exit_detection_module
    - htons
    - strtok_r
    linkageType: ''
    returnType: void
    signature: void ndpiCheckIPMatch(char *testChar)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: logf
      Src: /src/ndpi/example/ndpiReader.c:536,1
    - Dst: log
      Src: /src/ndpi/example/ndpiReader.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - byte_count
    - num_bytes
    argTypes:
    - uint32_t[]
    - unsigned int
    constantsTouched: []
    func_position:
      end: 540
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 540
    functionName: ndpi_flow_get_byte_count_entropy
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - log
    - logf
    linkageType: ''
    returnType: double
    signature: "double ndpi_flow_get_byte_count_entropy(const uint32_t byte_count[256],\n\t\t\t\t\t
      \      unsigned int num_bytes)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fflush
      Src: /src/ndpi/example/ndpiReader.c:560,1
    - Dst: sqrt
      Src: /src/ndpi/example/ndpiReader.c:581,1
    - Dst: sqrt
      Src: /src/ndpi/example/ndpiReader.c:602,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:615,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:617,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:618,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:619,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:620,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:624,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 627
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 627
    functionName: flowGetBDMeanandVariance
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    - sqrt
    linkageType: ''
    returnType: void
    signature: void flowGetBDMeanandVariance(struct ndpi_flow_info* flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:633,1
    - Dst: ndpi_revision
      Src: /src/ndpi/example/ndpiReader.c:633,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:635,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:724,1
    - Dst: ndpi_load_protocols_file
      Src: /src/ndpi/example/ndpiReader.c:727,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:729,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:731,1
    - Dst: ndpi_dump_config
      Src: /src/ndpi/example/ndpiReader.c:732,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:735,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:749,1
    - Dst: ndpi_detection_get_sizeof_ndpi_flow_struct
      Src: /src/ndpi/example/ndpiReader.c:752,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:755,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:756,1
    - Dst: ndpi_dump_protocols
      Src: /src/ndpi/example/ndpiReader.c:760,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:762,1
    - Dst: ndpi_dump_risks_score
      Src: /src/ndpi/example/ndpiReader.c:763,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:766,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - long_help
    argTypes:
    - u_int
    constantsTouched: []
    func_position:
      end: 769
      start: 632
    functionDepth: 7
    functionLinenumber: 632
    functionLinenumberEnd: 769
    functionName: help
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 4
    functionsReached:
    - printf
    - ndpi_load_protocols_file
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_revision
    - exit
    - ndpi_dump_config
    - ndpi_detection_get_sizeof_ndpi_flow_struct
    - ndpi_dump_protocols
    - ndpi_exit_detection_module
    - ndpi_dump_risks_score
    linkageType: ''
    returnType: void
    signature: void help(u_int long_help)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:836,1
    - Dst: ndpi_revision
      Src: /src/ndpi/example/ndpiReader.c:836,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 840
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 840
    functionName: extcap_interfaces
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_revision
    - printf
    linkageType: ''
    returnType: void
    signature: void extcap_interfaces()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 849
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 849
    functionName: extcap_dlts
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void extcap_dlts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 865
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 865
    functionName: cmpProto
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmpProto(const void *_a, const void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/ndpi/example/ndpiReader.c:881,1
    - Dst: htonl
      Src: /src/ndpi/example/ndpiReader.c:881,1
    - Dst: htonl
      Src: /src/ndpi/example/ndpiReader.c:881,1
    - Dst: htonl
      Src: /src/ndpi/example/ndpiReader.c:881,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:882,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:882,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:882,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:882,1
    - Dst: htonl
      Src: /src/ndpi/example/ndpiReader.c:883,1
    - Dst: htonl
      Src: /src/ndpi/example/ndpiReader.c:883,1
    - Dst: htonl
      Src: /src/ndpi/example/ndpiReader.c:883,1
    - Dst: htonl
      Src: /src/ndpi/example/ndpiReader.c:883,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:884,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:884,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:884,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:884,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 887
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 887
    functionName: cmpFlows
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - htons
    - htonl
    linkageType: ''
    returnType: int
    signature: int cmpFlows(const void *_a, const void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:898,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:900,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:902,1
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/example/ndpiReader.c:904,1
    - Dst: ndpi_get_proto_defaults
      Src: /src/ndpi/example/ndpiReader.c:905,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:908,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:911,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:915,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:916,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:918,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:921,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:925,1
    - Dst: qsort
      Src: /src/ndpi/example/ndpiReader.c:928,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:931,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:934,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:937,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:939,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:942,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 945
      start: 891
    functionDepth: 4
    functionLinenumber: 891
    functionLinenumberEnd: 945
    functionName: extcap_config
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_free
    - ndpi_get_proto_defaults
    - ndpi_malloc
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_get_num_protocols
    - qsort
    - exit
    - ndpi_snprintf
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: void
    signature: void extcap_config()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:951,1
    - Dst: pcap_open_dead
      Src: /src/ndpi/example/ndpiReader.c:954,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:955,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:958,1
    - Dst: pcap_dump_open
      Src: /src/ndpi/example/ndpiReader.c:963,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:965,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:968,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:975,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - datalink_type
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 977
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 977
    functionName: extcap_capture
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - pcap_open_dead
    - fprintf
    - pcap_dump_open
    linkageType: ''
    returnType: void
    signature: void extcap_capture(int datalink_type)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:984,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:985,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:986,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:989,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:990,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:991,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:994,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:995,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:998,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1000,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1002,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1005,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1008,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1009,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1010,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1011,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1013,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1015,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1018,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 1022
    functionName: printCSVHeader
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void printCSVHeader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1030,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:1035,1
    - Dst: strtok_r
      Src: /src/ndpi/example/ndpiReader.c:1042,1
    - Dst: strtok_r
      Src: /src/ndpi/example/ndpiReader.c:1044,1
    - Dst: strtok_r
      Src: /src/ndpi/example/ndpiReader.c:1046,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:1049,1
    - Dst: strtok_r
      Src: /src/ndpi/example/ndpiReader.c:1054,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1056,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1057,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1058,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:1059,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:1061,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:1062,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:1063,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:1070,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - param
    - s1
    - s2
    - s3
    argTypes:
    - char*
    - char**
    - char**
    - char**
    constantsTouched: []
    func_position:
      end: 1072
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1072
    functionName: parse_three_strings
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_strdup
    - ndpi_free
    - strlen
    - strtok_r
    linkageType: ''
    returnType: int
    signature: int parse_three_strings(char *param, char **s1, char **s2, char **s3)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1077,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1080,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1081,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - proto
    - param
    - value
    - dup
    argTypes:
    - char*
    - char*
    - char*
    - int
    constantsTouched: []
    func_position:
      end: 1085
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1085
    functionName: reader_add_cfg
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_strdup
    - printf
    linkageType: ''
    returnType: int
    signature: int reader_add_cfg(char *proto, char *param, char *value, int dup)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/ndpi/example/ndpiReader.c:1096,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1098,1
    - Dst: ndpi_generate_options
      Src: /src/ndpi/example/ndpiReader.c:1103,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1103,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1104,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1111,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1116,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1117,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1118,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1127,1
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:1132,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1133,1
    - Dst: strerror
      Src: /src/ndpi/example/ndpiReader.c:1133,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1134,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1137,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1138,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1139,1
    - Dst: atol
      Src: /src/ndpi/example/ndpiReader.c:1163,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1184,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1192,1
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:1209,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1211,1
    - Dst: strerror
      Src: /src/ndpi/example/ndpiReader.c:1211,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1212,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1225,1
    - Dst: time
      Src: /src/ndpi/example/ndpiReader.c:1226,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1234,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/example/ndpiReader.c:1245,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1247,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1248,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1252,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1253,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1254,1
    - Dst: snprintf
      Src: /src/ndpi/example/ndpiReader.c:1257,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1258,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1259,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1260,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1273,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1274,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1275,1
    - Dst: strtok
      Src: /src/ndpi/example/ndpiReader.c:1278,1
    - Dst: strtok
      Src: /src/ndpi/example/ndpiReader.c:1278,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1284,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1285,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1286,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:1289,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:1294,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1295,1
    - Dst: help
      Src: /src/ndpi/example/ndpiReader.c:1299,1
    - Dst: help
      Src: /src/ndpi/example/ndpiReader.c:1303,1
    - Dst: sscanf
      Src: /src/ndpi/example/ndpiReader.c:1317,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1331,1
    - Dst: help
      Src: /src/ndpi/example/ndpiReader.c:1332,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/example/ndpiReader.c:1339,1
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:1344,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1346,1
    - Dst: strerror
      Src: /src/ndpi/example/ndpiReader.c:1346,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1347,1
    - Dst: strcasecmp
      Src: /src/ndpi/example/ndpiReader.c:1352,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:1352,1
    - Dst: strcasecmp
      Src: /src/ndpi/example/ndpiReader.c:1355,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:1355,1
    - Dst: strcasecmp
      Src: /src/ndpi/example/ndpiReader.c:1358,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:1358,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1362,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1363,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1368,1
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:1369,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1370,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1371,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1377,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1378,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1379,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1385,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1386,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1387,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1392,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1393,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1394,1
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:1408,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1410,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1411,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1415,1
    - Dst: fgets
      Src: /src/ndpi/example/ndpiReader.c:1421,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:1426,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1433,1
    - Dst: strtok_r
      Src: /src/ndpi/example/ndpiReader.c:1433,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1436,1
    - Dst: strtok_r
      Src: /src/ndpi/example/ndpiReader.c:1436,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1439,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1440,1
    - Dst: parse_parameters
      Src: /src/ndpi/example/ndpiReader.c:1447,1
    - Dst: fclose
      Src: /src/ndpi/example/ndpiReader.c:1450,1
    - Dst: extcap_interfaces
      Src: /src/ndpi/example/ndpiReader.c:1456,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1460,1
    - Dst: ndpi_revision
      Src: /src/ndpi/example/ndpiReader.c:1460,1
    - Dst: extcap_dlts
      Src: /src/ndpi/example/ndpiReader.c:1464,1
    - Dst: extcap_config
      Src: /src/ndpi/example/ndpiReader.c:1468,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:1478,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:1483,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:1485,1
    - Dst: ndpi_get_proto_by_name
      Src: /src/ndpi/example/ndpiReader.c:1487,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1488,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:1490,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1495,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1509,1
    - Dst: parse_three_strings
      Src: /src/ndpi/example/ndpiReader.c:1513,1
    - Dst: reader_add_cfg
      Src: /src/ndpi/example/ndpiReader.c:1514,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1515,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1516,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1526,1
    - Dst: help
      Src: /src/ndpi/example/ndpiReader.c:1529,1
    CyclomaticComplexity: 108
    EdgeCount: 108
    ICount: 330
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1533
      start: 1090
    functionDepth: 5
    functionLinenumber: 1090
    functionLinenumberEnd: 1533
    functionName: parse_parameters
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 1
    functionsReached:
    - fprintf
    - atoi
    - atol
    - ndpi_free
    - extcap_config
    - exit
    - snprintf
    - strlen
    - strerror
    - ndpi_strdup
    - strcasecmp
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_strtonum
    - strtok_r
    - getopt_long
    - fopen
    - parse_parameters
    - ndpi_revision
    - reader_add_cfg
    - help
    - extcap_dlts
    - extcap_interfaces
    - sscanf
    - printf
    - fclose
    - ndpi_get_proto_by_name
    - strtok
    - ndpi_generate_options
    - time
    - fgets
    - parse_three_strings
    - ndpi_init_bin
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: void
    signature: void parse_parameters(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/ndpi/example/ndpiReader.c:1543,1
    - Dst: rte_exit
      Src: /src/ndpi/example/ndpiReader.c:1552,1
    - Dst: parse_parameters
      Src: /src/ndpi/example/ndpiReader.c:1558,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1562,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1563,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1571,1
    - Dst: printCSVHeader
      Src: /src/ndpi/example/ndpiReader.c:1573,1
    - Dst: help
      Src: /src/ndpi/example/ndpiReader.c:1582,1
    - Dst: strchr
      Src: /src/ndpi/example/ndpiReader.c:1584,1
    - Dst: strtok
      Src: /src/ndpi/example/ndpiReader.c:1586,1
    - Dst: strtok
      Src: /src/ndpi/example/ndpiReader.c:1589,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1599,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:1600,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:1614,1
    - Dst: strtok
      Src: /src/ndpi/example/ndpiReader.c:1615,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 1621
      start: 1538
    functionDepth: 6
    functionLinenumber: 1538
    functionLinenumberEnd: 1621
    functionName: parseOptions
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - sysconf
    - printf
    - atoi
    - rte_exit
    - parse_parameters
    - printCSVHeader
    - exit
    - strtok
    - help
    - strchr
    linkageType: ''
    returnType: void
    signature: void parseOptions(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - ndpi_cipher_weakness
    constantsTouched: []
    func_position:
      end: 1638
      start: 1625
    functionDepth: 0
    functionLinenumber: 1625
    functionLinenumberEnd: 1638
    functionName: print_cipher
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * print_cipher(ndpi_cipher_weakness c)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_normalize_bin
      Src: /src/ndpi/example/ndpiReader.c:1646,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1648,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1653,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1656,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1659,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1662,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1667,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - fout
    - label
    - b
    argTypes:
    - FILE*
    - char*
    - struct ndpi_bin*
    constantsTouched: []
    func_position:
      end: 1668
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1668
    functionName: print_bin
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 2
    functionsReached:
    - fprintf
    - ndpi_normalize_bin
    linkageType: ''
    returnType: void
    signature: void print_bin(FILE *fout, const char *label, struct ndpi_bin *b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1678,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiReader.c:1685,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1686,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiReader.c:1688,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1689,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1692,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1695,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - out
    - label
    - list
    argTypes:
    - FILE*
    - char*
    - ndpi_address_port_list*
    constantsTouched: []
    func_position:
      end: 1696
      start: 1672
    functionDepth: 0
    functionLinenumber: 1672
    functionLinenumberEnd: 1696
    functionName: print_ndpi_address_port_list_file
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_ndpi_address_port_list_file(FILE *out, const char *label,
      ndpi_address_port_list *list)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1716,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:1721,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:1722,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1725,1
    - Dst: ndpi_protocol2id
      Src: /src/ndpi/example/ndpiReader.c:1726,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1728,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/ndpiReader.c:1729,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiReader.c:1731,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1735,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1737,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1739,1
    - Dst: ndpi_data_ratio2str
      Src: /src/ndpi/example/ndpiReader.c:1739,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1740,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1744,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:1745,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:1745,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:1746,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:1746,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1748,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:1749,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:1749,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:1750,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:1750,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:1751,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:1751,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:1752,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:1752,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1755,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:1756,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:1756,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:1757,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:1757,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:1758,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:1758,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:1759,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:1759,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1762,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1764,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1767,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1771,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1773,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1776,1
    - Dst: ndpi_ssl_version2str
      Src: /src/ndpi/example/ndpiReader.c:1777,1
    - Dst: ndpi_quic_version2str
      Src: /src/ndpi/example/ndpiReader.c:1778,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1781,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1788,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1794,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1799,1
    - Dst: print_bin
      Src: /src/ndpi/example/ndpiReader.c:1802,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1805,1
    - Dst: flowGetBDMeanandVariance
      Src: /src/ndpi/example/ndpiReader.c:1809,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1813,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1820,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1822,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1825,1
    - Dst: ndpi_get_ip_proto_name
      Src: /src/ndpi/example/ndpiReader.c:1825,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1827,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:1829,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:1832,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1835,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1836,1
    - Dst: flowGetBDMeanandVariance
      Src: /src/ndpi/example/ndpiReader.c:1840,1
    - Dst: fflush
      Src: /src/ndpi/example/ndpiReader.c:1841,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1842,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1847,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1849,1
    - Dst: ndpi_tunnel2str
      Src: /src/ndpi/example/ndpiReader.c:1849,1
    - Dst: ndpi_is_master_only_protocol
      Src: /src/ndpi/example/ndpiReader.c:1856,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:1858,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiReader.c:1860,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/ndpiReader.c:1864,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1871,1
    - Dst: ndpi_protocol2id
      Src: /src/ndpi/example/ndpiReader.c:1872,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/ndpiReader.c:1873,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiReader.c:1876,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1882,1
    - Dst: ndpi_multimedia_flowtype2str
      Src: /src/ndpi/example/ndpiReader.c:1882,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1888,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1891,1
    - Dst: ndpi_rtp_payload_type2str
      Src: /src/ndpi/example/ndpiReader.c:1892,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1895,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1897,1
    - Dst: ndpi_rtp_payload_type2str
      Src: /src/ndpi/example/ndpiReader.c:1898,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1900,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1904,1
    - Dst: ndpi_is_encrypted_proto
      Src: /src/ndpi/example/ndpiReader.c:1905,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1908,1
    - Dst: ndpi_confidence_get_name
      Src: /src/ndpi/example/ndpiReader.c:1908,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1911,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiReader.c:1913,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1916,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiReader.c:1919,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiReader.c:1921,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1924,1
    - Dst: ndpi_fpc_confidence_get_name
      Src: /src/ndpi/example/ndpiReader.c:1925,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1931,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1933,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1936,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1939,1
    - Dst: ndpi_category_get_name
      Src: /src/ndpi/example/ndpiReader.c:1940,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1944,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1945,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1949,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1954,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1956,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1958,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1959,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1961,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1962,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1964,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1974,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1983,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1995,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:1999,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2003,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2007,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2014,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2018,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2022,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2026,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2033,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2037,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2041,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2045,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2052,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2061,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2066,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2074,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2078,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2083,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2084,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2089,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2092,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2095,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2097,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2099,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2100,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2101,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2107,1
    - Dst: ndpi_data_ratio2str
      Src: /src/ndpi/example/ndpiReader.c:2107,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2110,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:2111,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:2112,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:2113,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:2113,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:2114,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:2115,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:2116,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:2116,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2119,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:2120,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:2121,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:2122,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:2122,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:2123,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:2124,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:2125,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:2125,1
    - Dst: print_ndpi_address_port_list_file
      Src: /src/ndpi/example/ndpiReader.c:2129,1
    - Dst: print_ndpi_address_port_list_file
      Src: /src/ndpi/example/ndpiReader.c:2130,1
    - Dst: print_ndpi_address_port_list_file
      Src: /src/ndpi/example/ndpiReader.c:2131,1
    - Dst: print_ndpi_address_port_list_file
      Src: /src/ndpi/example/ndpiReader.c:2132,1
    - Dst: print_ndpi_address_port_list_file
      Src: /src/ndpi/example/ndpiReader.c:2133,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2137,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2140,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2143,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2146,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2149,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2152,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2155,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2158,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2161,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2166,1
    - Dst: NDPI_ISSET_BIT
      Src: /src/ndpi/example/ndpiReader.c:2169,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2170,1
    - Dst: ndpi_risk2str
      Src: /src/ndpi/example/ndpiReader.c:2170,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2172,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2174,1
    - Dst: ndpi_risk2score
      Src: /src/ndpi/example/ndpiReader.c:2174,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2177,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2181,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2183,1
    - Dst: ndpi_ssl_version2str
      Src: /src/ndpi/example/ndpiReader.c:2183,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2186,1
    - Dst: ndpi_quic_version2str
      Src: /src/ndpi/example/ndpiReader.c:2186,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2189,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2191,1
    - Dst: print_cipher
      Src: /src/ndpi/example/ndpiReader.c:2192,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2194,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2196,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2198,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2199,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2201,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2203,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2204,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2207,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2211,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2213,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2215,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2218,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2221,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2222,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2223,1
    - Dst: ndpi_gmtime_r
      Src: /src/ndpi/example/ndpiReader.c:2229,1
    - Dst: ndpi_gmtime_r
      Src: /src/ndpi/example/ndpiReader.c:2230,1
    - Dst: strftime
      Src: /src/ndpi/example/ndpiReader.c:2232,1
    - Dst: strftime
      Src: /src/ndpi/example/ndpiReader.c:2233,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2235,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2241,1
    - Dst: ndpi_cipher2str
      Src: /src/ndpi/example/ndpiReader.c:2241,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2243,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2244,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2245,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2248,1
    - Dst: print_bin
      Src: /src/ndpi/example/ndpiReader.c:2252,1
    - Dst: print_bin
      Src: /src/ndpi/example/ndpiReader.c:2253,1
    - Dst: print_bin
      Src: /src/ndpi/example/ndpiReader.c:2255,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2261,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2264,1
    - Dst: ndpi_isspace
      Src: /src/ndpi/example/ndpiReader.c:2264,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2266,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2269,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 304
    argCount: 3
    argNames:
    - id
    - flow
    - thread_id
    argTypes:
    - u_int32_t
    - struct ndpi_flow_info*
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 2271
      start: 1703
    functionDepth: 3
    functionLinenumber: 1703
    functionLinenumberEnd: 2271
    functionName: printFlow
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_ssl_version2str
    - fprintf
    - ndpi_fpc_confidence_get_name
    - ndpi_protocol2name
    - ndpi_rtp_payload_type2str
    - ndpi_get_ip_proto_name
    - ndpi_isspace
    - flowGetBDMeanandVariance
    - ndpi_quic_version2str
    - ndpi_data_ratio2str
    - print_cipher
    - ntohs
    - ndpi_data_stddev
    - ndpi_multimedia_flowtype2str
    - ndpi_risk2str
    - ndpi_get_proto_name
    - print_ndpi_address_port_list_file
    - ndpi_confidence_get_name
    - ndpi_is_master_only_protocol
    - NDPI_ISSET_BIT
    - ndpi_is_encrypted_proto
    - ndpi_data_min
    - ndpi_data_max
    - ndpi_data_average
    - print_bin
    - ndpi_gmtime_r
    - printf
    - ndpi_protocol2id
    - strftime
    - fflush
    - ndpi_risk2score
    - ndpi_tunnel2str
    - ndpi_cipher2str
    - ndpi_category_get_name
    linkageType: ''
    returnType: void
    signature: void printFlow(u_int32_t id, struct ndpi_flow_info *flow, u_int16_t
      thread_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2282,1
    - Dst: ndpi_serialize_string_double
      Src: /src/ndpi/example/ndpiReader.c:2283,1
    - Dst: ndpi_serialize_string_double
      Src: /src/ndpi/example/ndpiReader.c:2284,1
    - Dst: ndpi_serialize_string_double
      Src: /src/ndpi/example/ndpiReader.c:2285,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2286,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2287,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/example/ndpiReader.c:2290,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2291,1
    - Dst: ndpi_serialize_string_string
      Src: /src/ndpi/example/ndpiReader.c:2292,1
    - Dst: ndpi_data_ratio2str
      Src: /src/ndpi/example/ndpiReader.c:2292,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2293,1
    - Dst: ndpi_serialize_string_uint64
      Src: /src/ndpi/example/ndpiReader.c:2294,1
    - Dst: ndpi_serialize_string_uint64
      Src: /src/ndpi/example/ndpiReader.c:2296,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2298,1
    - Dst: ndpi_serialize_string_uint64
      Src: /src/ndpi/example/ndpiReader.c:2299,1
    - Dst: ndpi_serialize_string_uint64
      Src: /src/ndpi/example/ndpiReader.c:2301,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/example/ndpiReader.c:2303,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/example/ndpiReader.c:2306,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2307,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:2307,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2308,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:2309,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2310,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:2310,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2311,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:2312,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2314,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:2315,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2316,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:2317,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2318,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:2319,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2320,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:2321,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2323,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:2324,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2325,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:2326,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2327,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:2328,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2329,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:2330,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/example/ndpiReader.c:2331,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/example/ndpiReader.c:2334,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2335,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:2336,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2337,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:2338,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2339,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:2340,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2341,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:2342,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2344,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:2345,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2346,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:2347,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2348,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:2349,1
    - Dst: ndpi_serialize_string_float
      Src: /src/ndpi/example/ndpiReader.c:2350,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:2351,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/example/ndpiReader.c:2352,1
    - Dst: ndpi_serialize_start_of_block
      Src: /src/ndpi/example/ndpiReader.c:2355,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2356,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2357,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2358,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2359,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2360,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2361,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2362,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2363,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2365,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2366,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2367,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2368,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2369,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2370,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2371,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2372,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2374,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2375,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2376,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2377,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2378,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2379,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2380,1
    - Dst: ndpi_serialize_string_int32
      Src: /src/ndpi/example/ndpiReader.c:2381,1
    - Dst: ndpi_serialize_end_of_block
      Src: /src/ndpi/example/ndpiReader.c:2382,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2385,1
    - Dst: ndpi_serialize_string_uint32
      Src: /src/ndpi/example/ndpiReader.c:2386,1
    - Dst: ndpi_serializer_get_buffer
      Src: /src/ndpi/example/ndpiReader.c:2388,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:2391,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:2392,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 75
    argCount: 1
    argNames:
    - flow
    argTypes:
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 2400
      start: 2273
    functionDepth: 9
    functionLinenumber: 2273
    functionLinenumberEnd: 2400
    functionName: printFlowSerialized
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_serializer_get_buffer
    - ndpi_serialize_string_string
    - fprintf
    - printf
    - ndpi_data_stddev
    - ndpi_serialize_string_float
    - ndpi_serialize_string_double
    - exit
    - ndpi_serialize_string_uint64
    - ndpi_data_ratio2str
    - ndpi_serialize_string_int32
    - ndpi_data_min
    - ndpi_serialize_string_uint32
    - ndpi_data_max
    - ndpi_data_average
    - ndpi_serialize_end_of_block
    - ndpi_serialize_start_of_block
    linkageType: ''
    returnType: void
    signature: void printFlowSerialized(struct ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - node
    - which
    - depth
    - user_data
    argTypes:
    - void*
    - ndpi_VISIT
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2423
      start: 2407
    functionDepth: 0
    functionLinenumber: 2407
    functionLinenumberEnd: 2423
    functionName: node_print_unknown_proto_walker
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void node_print_unknown_proto_walker(const void *node,\n                                            ndpi_VISIT
      which, int depth, void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - node
    - which
    - depth
    - user_data
    argTypes:
    - void*
    - ndpi_VISIT
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2446
      start: 2430
    functionDepth: 0
    functionLinenumber: 2430
    functionLinenumberEnd: 2446
    functionName: node_print_known_proto_walker
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void node_print_known_proto_walker(const void *node,\n                                          ndpi_VISIT
      which, int depth, void *user_data)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_detection_giveup
      Src: /src/ndpi/example/ndpiReader.c:2466,1
    - Dst: process_ndpi_collected_info
      Src: /src/ndpi/example/ndpiReader.c:2473,1
    - Dst: ndpi_map_user_proto_id_to_ndpi_id
      Src: /src/ndpi/example/ndpiReader.c:2476,1
    - Dst: ndpi_map_user_proto_id_to_ndpi_id
      Src: /src/ndpi/example/ndpiReader.c:2479,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - node
    - which
    - depth
    - user_data
    argTypes:
    - void*
    - ndpi_VISIT
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2491
      start: 2453
    functionDepth: 10
    functionLinenumber: 2453
    functionLinenumberEnd: 2491
    functionName: node_proto_guess_walker
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_map_user_proto_id_to_ndpi_id
    - ndpi_detection_giveup
    - process_ndpi_collected_info
    linkageType: ''
    returnType: void
    signature: void node_proto_guess_walker(const void *node, ndpi_VISIT which, int
      depth, void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/ndpiReader.c:2500,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:2503,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:2510,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:2513,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:2518,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:2519,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/ndpiReader.c:2524,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:2527,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:2531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - scanners
    - saddr
    - version
    - dport
    argTypes:
    - struct single_flow_info**
    - u_int32_t
    - u_int8_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2535
      start: 2495
    functionDepth: 0
    functionLinenumber: 2495
    functionLinenumberEnd: 2535
    functionName: updateScanners
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - HASH_ADD_INT
    - ndpi_free
    - HASH_FIND_INT
    - ndpi_malloc
    linkageType: ''
    returnType: void
    signature: "void updateScanners(struct single_flow_info **scanners, u_int32_t
      saddr,\n                    u_int8_t version, u_int32_t dport)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:2559,1
    - Dst: strncpy
      Src: /src/ndpi/example/ndpiReader.c:2565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - key
    - version
    - vrootp
    - proto
    argTypes:
    - u_int32_t
    - u_int8_t
    - addr_node**
    - char*
    constantsTouched: []
    func_position:
      end: 2574
      start: 2539
    functionDepth: 0
    functionLinenumber: 2539
    functionLinenumberEnd: 2574
    functionName: updateIpTree
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_malloc
    - strncpy
    linkageType: ''
    returnType: int
    signature: "int updateIpTree(u_int32_t key, u_int8_t version,\n                 addr_node
      **vrootp, const char *proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: freeIpTree
      Src: /src/ndpi/example/ndpiReader.c:2581,1
    - Dst: freeIpTree
      Src: /src/ndpi/example/ndpiReader.c:2582,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:2583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - addr_node*
    constantsTouched: []
    func_position:
      end: 2584
      start: 2577
    functionDepth: 1
    functionLinenumber: 2577
    functionLinenumberEnd: 2584
    functionName: freeIpTree
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 1
    functionsReached:
    - freeIpTree
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void freeIpTree(addr_node *root)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/ndpi/example/ndpiReader.c:2601,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - addr
    - version
    - proto
    - count
    - top
    - size
    argTypes:
    - u_int32_t
    - u_int8_t
    - char*
    - int
    - struct info_pair[]
    - int
    constantsTouched: []
    func_position:
      end: 2630
      start: 2588
    functionDepth: 0
    functionLinenumber: 2588
    functionLinenumberEnd: 2630
    functionName: updateTopIpAddress
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: void
    signature: "void updateTopIpAddress(u_int32_t addr, u_int8_t version, const char
      *proto,\n                        int count, struct info_pair top[], int size)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/ndpiReader.c:2642,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:2644,1
    - Dst: updateTopIpAddress
      Src: /src/ndpi/example/ndpiReader.c:2650,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:2652,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:2654,1
    - Dst: strncpy
      Src: /src/ndpi/example/ndpiReader.c:2660,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:2666,1
    - Dst: updateIpTree
      Src: /src/ndpi/example/ndpiReader.c:2669,1
    - Dst: updateTopIpAddress
      Src: /src/ndpi/example/ndpiReader.c:2675,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 7
    argNames:
    - stats
    - port
    - addr
    - version
    - num_pkts
    - num_bytes
    - proto
    argTypes:
    - struct port_stats**
    - u_int32_t
    - u_int32_t
    - u_int8_t
    - u_int32_t
    - u_int32_t
    - char*
    constantsTouched: []
    func_position:
      end: 2680
      start: 2634
    functionDepth: 1
    functionLinenumber: 2634
    functionLinenumberEnd: 2680
    functionName: updatePortStats
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - HASH_ADD_INT
    - ndpi_free
    - ndpi_malloc
    - strncpy
    - updateIpTree
    - ndpi_calloc
    - updateTopIpAddress
    - HASH_FIND_INT
    linkageType: ''
    returnType: void
    signature: "void updatePortStats(struct port_stats **stats, u_int32_t port,\n
      \                           u_int32_t addr, u_int8_t version,\n                            u_int32_t
      num_pkts, u_int32_t num_bytes,\n                            const char *proto)"
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_pkts
    argTypes:
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2687
      start: 2685
    functionDepth: 0
    functionLinenumber: 2685
    functionLinenumberEnd: 2687
    functionName: acceptable
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int acceptable(u_int32_t num_pkts)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 2696
      start: 2691
    functionDepth: 0
    functionLinenumber: 2691
    functionLinenumberEnd: 2696
    functionName: receivers_sort_asc
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int receivers_sort_asc(void *_a, void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:2712,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:2715,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:2716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - rcvrs
    - size
    - max
    argTypes:
    - struct receiver**
    - u_int32_t
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 2721
      start: 2702
    functionDepth: 0
    functionLinenumber: 2702
    functionLinenumberEnd: 2721
    functionName: cutBackTo
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - HASH_ITER
    - HASH_DEL
    - ndpi_free
    linkageType: ''
    returnType: struct receiver
    signature: struct receiver *cutBackTo(struct receiver **rcvrs, u_int32_t size,
      u_int32_t max)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:2732,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/ndpiReader.c:2733,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:2735,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:2742,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:2747,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:2748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - primary
    - secondary
    argTypes:
    - struct receiver**
    - struct receiver**
    constantsTouched: []
    func_position:
      end: 2750
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2750
    functionName: mergeTables
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - HASH_ADD_INT
    - ndpi_free
    - HASH_ITER
    - ndpi_malloc
    - HASH_DEL
    - HASH_FIND_INT
    linkageType: ''
    returnType: void
    signature: void mergeTables(struct receiver **primary, struct receiver **secondary)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:2757,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:2758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rcvrs
    argTypes:
    - struct receiver*
    constantsTouched: []
    func_position:
      end: 2760
      start: 2753
    functionDepth: 0
    functionLinenumber: 2753
    functionLinenumberEnd: 2760
    functionName: deleteReceivers
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - HASH_DEL
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void deleteReceivers(struct receiver *rcvrs)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/ndpiReader.c:2784,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/ndpiReader.c:2786,1
    - Dst: acceptable
      Src: /src/ndpi/example/ndpiReader.c:2787,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:2788,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:2795,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/ndpiReader.c:2797,1
    - Dst: HASH_SORT
      Src: /src/ndpi/example/ndpiReader.c:2799,1
    - Dst: cutBackTo
      Src: /src/ndpi/example/ndpiReader.c:2800,1
    - Dst: mergeTables
      Src: /src/ndpi/example/ndpiReader.c:2801,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/ndpiReader.c:2803,1
    - Dst: HASH_SORT
      Src: /src/ndpi/example/ndpiReader.c:2804,1
    - Dst: cutBackTo
      Src: /src/ndpi/example/ndpiReader.c:2805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - rcvrs
    - dst_addr
    - version
    - num_pkts
    - topRcvrs
    argTypes:
    - struct receiver**
    - u_int32_t
    - u_int8_t
    - u_int32_t
    - struct receiver**
    constantsTouched: []
    func_position:
      end: 2814
      start: 2777
    functionDepth: 1
    functionLinenumber: 2777
    functionLinenumberEnd: 2814
    functionName: updateReceivers
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - HASH_ADD_INT
    - HASH_COUNT
    - acceptable
    - ndpi_malloc
    - cutBackTo
    - mergeTables
    - HASH_SORT
    - HASH_FIND_INT
    linkageType: ''
    returnType: void
    signature: "void updateReceivers(struct receiver **rcvrs, u_int32_t dst_addr,\n
      \                           u_int8_t version, u_int32_t num_pkts,\n                            struct
      receiver **topRcvrs)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:2823,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:2824,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:2825,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:2827,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:2828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - scanners
    argTypes:
    - struct single_flow_info*
    constantsTouched: []
    func_position:
      end: 2830
      start: 2818
    functionDepth: 0
    functionLinenumber: 2818
    functionLinenumberEnd: 2830
    functionName: deleteScanners
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - HASH_ITER
    - HASH_DEL
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void deleteScanners(struct single_flow_info *scanners)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:2838,1
    - Dst: freeIpTree
      Src: /src/ndpi/example/ndpiReader.c:2839,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:2840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct port_stats*
    constantsTouched: []
    func_position:
      end: 2842
      start: 2834
    functionDepth: 2
    functionLinenumber: 2834
    functionLinenumberEnd: 2842
    functionName: deletePortsStats
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - freeIpTree
    - HASH_DEL
    - ndpi_free
    linkageType: ''
    returnType: void
    signature: void deletePortsStats(struct port_stats *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:2858,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:2858,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/ndpiReader.c:2862,1
    - Dst: strncpy
      Src: /src/ndpi/example/ndpiReader.c:2865,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiReader.c:2865,1
    - Dst: updateScanners
      Src: /src/ndpi/example/ndpiReader.c:2872,1
    - Dst: updateReceivers
      Src: /src/ndpi/example/ndpiReader.c:2875,1
    - Dst: updatePortStats
      Src: /src/ndpi/example/ndpiReader.c:2878,1
    - Dst: updatePortStats
      Src: /src/ndpi/example/ndpiReader.c:2881,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - node
    - which
    - depth
    - user_data
    argTypes:
    - void*
    - ndpi_VISIT
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2884
      start: 2849
    functionDepth: 3
    functionLinenumber: 2849
    functionLinenumberEnd: 2884
    functionName: port_stats_walker
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ntohs
    - ndpi_protocol2name
    - ndpi_get_proto_name
    - strncpy
    - updateReceivers
    - updatePortStats
    - updateScanners
    linkageType: ''
    returnType: void
    signature: void port_stats_walker(const void *node, ndpi_VISIT which, int depth,
      void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node_proto_guess_walker
      Src: /src/ndpi/example/ndpiReader.c:2902,1
    - Dst: port_stats_walker
      Src: /src/ndpi/example/ndpiReader.c:2904,1
    - Dst: ndpi_flow_info_free_data
      Src: /src/ndpi/example/ndpiReader.c:2909,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - node
    - which
    - depth
    - user_data
    argTypes:
    - void*
    - ndpi_VISIT
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 2915
      start: 2891
    functionDepth: 11
    functionLinenumber: 2891
    functionLinenumberEnd: 2915
    functionName: node_idle_scan_walker
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_flow_info_free_data
    - node_proto_guess_walker
    - port_stats_walker
    linkageType: ''
    returnType: void
    signature: void node_idle_scan_walker(const void *node, ndpi_VISIT which, int
      depth, void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/example/ndpiReader.c:2935,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - proto
    argTypes:
    - ndpi_protocol
    constantsTouched: []
    func_position:
      end: 2944
      start: 2919
    functionDepth: 0
    functionLinenumber: 2919
    functionLinenumberEnd: 2944
    functionName: is_realtime_protocol
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - NDPI_ARRAY_LENGTH
    linkageType: ''
    returnType: int
    signature: int is_realtime_protocol(ndpi_protocol proto)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_gmtime_r
      Src: /src/ndpi/example/ndpiReader.c:2956,1
    - Dst: strftime
      Src: /src/ndpi/example/ndpiReader.c:2958,1
    - Dst: snprintf
      Src: /src/ndpi/example/ndpiReader.c:2960,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiReader.c:2964,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiReader.c:2965,1
    - Dst: snprintf
      Src: /src/ndpi/example/ndpiReader.c:2967,1
    - Dst: snprintf
      Src: /src/ndpi/example/ndpiReader.c:2968,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/ndpiReader.c:2971,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:2974,1
    - Dst: ndpi_get_ip_proto_name
      Src: /src/ndpi/example/ndpiReader.c:2975,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:2976,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:2976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - workflow
    - flow
    argTypes:
    - struct ndpi_workflow*
    - struct ndpi_flow_info*
    constantsTouched: []
    func_position:
      end: 2979
      start: 2946
    functionDepth: 2
    functionLinenumber: 2946
    functionLinenumberEnd: 2979
    functionName: dump_realtime_protocol
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_gmtime_r
    - fprintf
    - ntohs
    - ndpi_protocol2name
    - ndpi_get_ip_proto_name
    - strftime
    - inet_ntop
    - snprintf
    linkageType: ''
    returnType: void
    signature: void dump_realtime_protocol(struct ndpi_workflow * workflow, struct
      ndpi_flow_info *flow)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dump_realtime_protocol
      Src: /src/ndpi/example/ndpiReader.c:2987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - workflow
    - flow
    - userdata
    argTypes:
    - struct ndpi_workflow*
    - struct ndpi_flow_info*
    - void*
    constantsTouched: []
    func_position:
      end: 2988
      start: 2981
    functionDepth: 3
    functionLinenumber: 2981
    functionLinenumberEnd: 2988
    functionName: on_protocol_discovered
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - dump_realtime_protocol
    linkageType: ''
    returnType: void
    signature: "void on_protocol_discovered(struct ndpi_workflow * workflow,\n                                   struct
      ndpi_flow_info * flow,\n                                   void * userdata)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/example/ndpiReader.c:3002,1
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/example/ndpiReader.c:3011,1
    - Dst: ndpi_get_num_internal_protocols
      Src: /src/ndpi/example/ndpiReader.c:3011,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:3012,1
    - Dst: ndpi_bitmask_set_all
      Src: /src/ndpi/example/ndpiReader.c:3013,1
    - Dst: parse_proto_name_list
      Src: /src/ndpi/example/ndpiReader.c:3014,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:3015,1
    - Dst: memset
      Src: /src/ndpi/example/ndpiReader.c:3019,1
    - Dst: ndpi_workflow_init
      Src: /src/ndpi/example/ndpiReader.c:3020,1
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/example/ndpiReader.c:3022,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3027,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:3028,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/example/ndpiReader.c:3033,1
    - Dst: ndpi_load_risk_domain_file
      Src: /src/ndpi/example/ndpiReader.c:3036,1
    - Dst: ndpi_load_malicious_ja4_file
      Src: /src/ndpi/example/ndpiReader.c:3039,1
    - Dst: ndpi_load_malicious_sha1_file
      Src: /src/ndpi/example/ndpiReader.c:3042,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3054,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:3055,1
    - Dst: ndpi_workflow_set_flow_callback
      Src: /src/ndpi/example/ndpiReader.c:3061,1
    - Dst: ndpi_load_protocols_file
      Src: /src/ndpi/example/ndpiReader.c:3065,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/example/ndpiReader.c:3067,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/example/ndpiReader.c:3070,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3073,1
    - Dst: ndpi_cfg_error2string
      Src: /src/ndpi/example/ndpiReader.c:3075,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:3076,1
    - Dst: ndpi_set_config
      Src: /src/ndpi/example/ndpiReader.c:3081,1
    - Dst: ndpi_cache_address_restore
      Src: /src/ndpi/example/ndpiReader.c:3084,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:3086,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3088,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:3089,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/example/ndpiReader.c:3093,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:3094,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:3099,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:3100,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:3101,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:3102,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:3103,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:3104,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:3111,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 3
    argNames:
    - thread_id
    - pcap_handle
    - g_ctx
    argTypes:
    - u_int16_t
    - pcap_t*
    - struct ndpi_global_context*
    constantsTouched: []
    func_position:
      end: 3114
      start: 2995
    functionDepth: 9
    functionLinenumber: 2995
    functionLinenumberEnd: 3114
    functionName: setupDetection
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - memset
    - ndpi_load_domain_suffixes
    - ndpi_load_malicious_ja4_file
    - fprintf
    - ndpi_workflow_init
    - atoi
    - parse_proto_name_list
    - exit
    - ndpi_set_config
    - ndpi_get_config
    - ndpi_finalize_initialization
    - ndpi_bitmask_alloc
    - ndpi_load_malicious_sha1_file
    - ndpi_workflow_set_flow_callback
    - ndpi_cache_address_restore
    - ndpi_calloc
    - ndpi_cfg_error2string
    - ndpi_load_protocols_file
    - ndpi_get_num_internal_protocols
    - ndpi_bitmask_set_all
    - ndpi_load_risk_domain_file
    - ndpi_bitmask_free
    linkageType: ''
    returnType: void
    signature: "void setupDetection(u_int16_t thread_id, pcap_t * pcap_handle,\n                           struct
      ndpi_global_context *g_ctx)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_workflow_free
      Src: /src/ndpi/example/ndpiReader.c:3122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - thread_id
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 3124
      start: 3121
    functionDepth: 4
    functionLinenumber: 3121
    functionLinenumberEnd: 3124
    functionName: terminateDetection
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_workflow_free
    linkageType: ''
    returnType: void
    signature: void terminateDetection(u_int16_t thread_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3140,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3142,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3147,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3152,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - numBits
    - bits
    - buf
    argTypes:
    - float
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 3160
      start: 3131
    functionDepth: 1
    functionLinenumber: 3131
    functionLinenumberEnd: 3160
    functionName: formatTraffic
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: char * formatTraffic(float numBits, int bits, char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3170,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3172,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - numPkts
    - buf
    argTypes:
    - float
    - char*
    constantsTouched: []
    func_position:
      end: 3179
      start: 3167
    functionDepth: 1
    functionLinenumber: 3167
    functionLinenumberEnd: 3179
    functionName: formatPackets
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: char * formatPackets(float numPkts, char *buf)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3190,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3192,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3197,1
    - Dst: ndpi_snprintf
      Src: /src/ndpi/example/ndpiReader.c:3201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - howMuch
    - buf
    - buf_len
    argTypes:
    - u_int32_t
    - char*
    - u_int
    constantsTouched: []
    func_position:
      end: 3206
      start: 3186
    functionDepth: 1
    functionLinenumber: 3186
    functionLinenumberEnd: 3206
    functionName: formatBytes
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_snprintf
    linkageType: ''
    returnType: char
    signature: char * formatBytes(u_int32_t howMuch, char *buf, u_int buf_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 3218
      start: 3210
    functionDepth: 0
    functionLinenumber: 3210
    functionLinenumberEnd: 3218
    functionName: port_stats_sort
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int port_stats_sort(void *_a, void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 3228
      start: 3222
    functionDepth: 0
    functionLinenumber: 3222
    functionLinenumberEnd: 3228
    functionName: info_pair_cmp
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int info_pair_cmp (const void *_a, const void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3239,1
    - Dst: qsort
      Src: /src/ndpi/example/ndpiReader.c:3242,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiReader.c:3247,1
    - Dst: inet_ntop
      Src: /src/ndpi/example/ndpiReader.c:3249,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3252,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct port_stats*
    constantsTouched: []
    func_position:
      end: 3260
      start: 3232
    functionDepth: 0
    functionLinenumber: 3232
    functionLinenumberEnd: 3260
    functionName: printPortStats
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - qsort
    - inet_ntop
    - printf
    linkageType: ''
    returnType: void
    signature: void printPortStats(struct port_stats *stats)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ISSET_BIT
      Src: /src/ndpi/example/ndpiReader.c:3279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - node
    - which
    - depth
    - user_data
    argTypes:
    - void*
    - ndpi_VISIT
    - int
    - void*
    constantsTouched: []
    func_position:
      end: 3284
      start: 3264
    functionDepth: 0
    functionLinenumber: 3264
    functionLinenumberEnd: 3284
    functionName: node_flow_risk_walker
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - NDPI_ISSET_BIT
    linkageType: ''
    returnType: void
    signature: void node_flow_risk_walker(const void *node, ndpi_VISIT which, int
      depth, void *user_data)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiReader.c:3294,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3299,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3307,1
    - Dst: ndpi_risk2str
      Src: /src/ndpi/example/ndpiReader.c:3307,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3311,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3288
    functionDepth: 3
    functionLinenumber: 3288
    functionLinenumberEnd: 3316
    functionName: printRiskStats
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_risk2str
    - ndpi_twalk
    - printf
    linkageType: ''
    returnType: void
    signature: void printRiskStats()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 3326
      start: 3321
    functionDepth: 0
    functionLinenumber: 3321
    functionLinenumberEnd: 3326
    functionName: hash_stats_sort_to_order
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hash_stats_sort_to_order(void *_a, void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    constantsTouched: []
    func_position:
      end: 3336
      start: 3331
    functionDepth: 0
    functionLinenumber: 3331
    functionLinenumberEnd: 3336
    functionName: hash_stats_sort_to_print
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hash_stats_sort_to_print(void *_a, void *_b)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_report_payload_stats
      Src: /src/ndpi/example/ndpiReader.c:3346,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3351,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3352,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:3353,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3368,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiReader.c:3373,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/ndpiReader.c:3388,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3393,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3400,1
    - Dst: HASH_ADD_KEYPTR
      Src: /src/ndpi/example/ndpiReader.c:3404,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:3405,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:3407,1
    - Dst: HASH_FIND_STR
      Src: /src/ndpi/example/ndpiReader.c:3412,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3416,1
    - Dst: HASH_ADD_KEYPTR
      Src: /src/ndpi/example/ndpiReader.c:3419,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:3420,1
    - Dst: HASH_FIND_STR
      Src: /src/ndpi/example/ndpiReader.c:3425,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3427,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3433,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:3438,1
    - Dst: HASH_ADD_KEYPTR
      Src: /src/ndpi/example/ndpiReader.c:3439,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:3439,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/ndpiReader.c:3443,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3445,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:3449,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/ndpiReader.c:3456,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3459,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3466,1
    - Dst: HASH_ADD_KEYPTR
      Src: /src/ndpi/example/ndpiReader.c:3470,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:3471,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:3473,1
    - Dst: HASH_FIND_STR
      Src: /src/ndpi/example/ndpiReader.c:3477,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3480,1
    - Dst: HASH_ADD_KEYPTR
      Src: /src/ndpi/example/ndpiReader.c:3483,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:3484,1
    - Dst: HASH_FIND_STR
      Src: /src/ndpi/example/ndpiReader.c:3488,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3490,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3496,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:3501,1
    - Dst: HASH_ADD_KEYPTR
      Src: /src/ndpi/example/ndpiReader.c:3502,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:3502,1
    - Dst: HASH_FIND_INT
      Src: /src/ndpi/example/ndpiReader.c:3507,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3509,1
    - Dst: HASH_ADD_INT
      Src: /src/ndpi/example/ndpiReader.c:3513,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3529,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3530,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/ndpiReader.c:3534,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/ndpiReader.c:3535,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3538,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3558,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3559,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/ndpiReader.c:3566,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/ndpiReader.c:3567,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:3570,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3571,1
    - Dst: print_cipher
      Src: /src/ndpi/example/ndpiReader.c:3575,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:3583,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3584,1
    - Dst: print_cipher
      Src: /src/ndpi/example/ndpiReader.c:3589,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3601,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3602,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:3605,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3607,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3611,1
    - Dst: print_cipher
      Src: /src/ndpi/example/ndpiReader.c:3613,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3618,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3619,1
    - Dst: print_cipher
      Src: /src/ndpi/example/ndpiReader.c:3621,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:3628,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3630,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3634,1
    - Dst: print_cipher
      Src: /src/ndpi/example/ndpiReader.c:3636,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3644,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3645,1
    - Dst: print_cipher
      Src: /src/ndpi/example/ndpiReader.c:3647,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3656,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:3660,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3662,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3663,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:3665,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3667,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3668,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3670,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3671,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:3675,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3677,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3678,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3680,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3681,1
    - Dst: HASH_ITER
      Src: /src/ndpi/example/ndpiReader.c:3686,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3688,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3689,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3691,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3692,1
    - Dst: ndpi_max
      Src: /src/ndpi/example/ndpiReader.c:3712,1
    - Dst: HASH_FIND_STR
      Src: /src/ndpi/example/ndpiReader.c:3715,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3718,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/ndpiReader.c:3721,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3726,1
    - Dst: free
      Src: /src/ndpi/example/ndpiReader.c:3727,1
    - Dst: HASH_ADD_KEYPTR
      Src: /src/ndpi/example/ndpiReader.c:3733,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:3733,1
    - Dst: ndpi_max
      Src: /src/ndpi/example/ndpiReader.c:3740,1
    - Dst: HASH_FIND_STR
      Src: /src/ndpi/example/ndpiReader.c:3743,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3746,1
    - Dst: HASH_COUNT
      Src: /src/ndpi/example/ndpiReader.c:3751,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3756,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3757,1
    - Dst: HASH_ADD_KEYPTR
      Src: /src/ndpi/example/ndpiReader.c:3762,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:3762,1
    - Dst: HASH_SORT
      Src: /src/ndpi/example/ndpiReader.c:3768,1
    - Dst: HASH_SORT
      Src: /src/ndpi/example/ndpiReader.c:3772,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3778,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3782,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3783,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:3785,1
    - Dst: HASH_DEL
      Src: /src/ndpi/example/ndpiReader.c:3789,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3790,1
    - Dst: qsort
      Src: /src/ndpi/example/ndpiReader.c:3797,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3801,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3802,1
    - Dst: ndpi_normalize_protocol
      Src: /src/ndpi/example/ndpiReader.c:3808,1
    - Dst: memcpy
      Src: /src/ndpi/example/ndpiReader.c:3850,1
    - Dst: ndpi_normalize_bin
      Src: /src/ndpi/example/ndpiReader.c:3851,1
    - Dst: printFlow
      Src: /src/ndpi/example/ndpiReader.c:3858,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:3867,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/example/ndpiReader.c:3869,1
    - Dst: ndpi_cluster_bins
      Src: /src/ndpi/example/ndpiReader.c:3872,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3874,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3888,1
    - Dst: print_bin
      Src: /src/ndpi/example/ndpiReader.c:3889,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3890,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3893,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/ndpiReader.c:3895,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:3898,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:3900,1
    - Dst: print_bin
      Src: /src/ndpi/example/ndpiReader.c:3902,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3903,1
    - Dst: ndpi_bin_similarity
      Src: /src/ndpi/example/ndpiReader.c:3904,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3907,1
    - Dst: check_bin_doh_similarity
      Src: /src/ndpi/example/ndpiReader.c:3916,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3917,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3919,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3922,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3926,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3932,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3933,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/example/ndpiReader.c:3938,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3940,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3944,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:3946,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:3952,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiReader.c:3963,1
    - Dst: qsort
      Src: /src/ndpi/example/ndpiReader.c:3968,1
    - Dst: printFlow
      Src: /src/ndpi/example/ndpiReader.c:3971,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiReader.c:3978,1
    - Dst: printFlow
      Src: /src/ndpi/example/ndpiReader.c:3983,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiReader.c:3994,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiReader.c:3996,1
    - Dst: printFlowSerialized
      Src: /src/ndpi/example/ndpiReader.c:4002,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:4005,1
    CyclomaticComplexity: 105
    EdgeCount: 105
    ICount: 375
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4006
      start: 3340
    functionDepth: 10
    functionLinenumber: 3340
    functionLinenumberEnd: 4006
    functionName: printFlowsStats
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - HASH_ADD_INT
    - fprintf
    - ndpi_free
    - ndpi_max
    - ndpi_protocol2name
    - exit
    - printFlowSerialized
    - strlen
    - ndpi_bin_similarity
    - print_cipher
    - ndpi_normalize_protocol
    - ntohs
    - check_bin_doh_similarity
    - ndpi_twalk
    - HASH_DEL
    - ndpi_normalize_bin
    - ndpi_cluster_bins
    - HASH_COUNT
    - ndpi_malloc
    - qsort
    - HASH_FIND_INT
    - free
    - print_bin
    - HASH_FIND_STR
    - memcpy
    - printf
    - HASH_ADD_KEYPTR
    - HASH_ITER
    - ndpi_free_bin
    - HASH_SORT
    - ndpi_report_payload_stats
    - ndpi_init_bin
    - printFlow
    linkageType: ''
    returnType: void
    signature: void printFlowsStats()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/ndpi/example/ndpiReader.c:4023,1
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/example/ndpiReader.c:4026,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:4027,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:4028,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:4029,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:4030,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:4031,1
    - Dst: ndpi_calloc
      Src: /src/ndpi/example/ndpiReader.c:4032,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiReader.c:4048,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiReader.c:4050,1
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/example/ndpiReader.c:4062,1
    - Dst: snprintf
      Src: /src/ndpi/example/ndpiReader.c:4104,1
    - Dst: ndpi_lru_cache_idx_to_name
      Src: /src/ndpi/example/ndpiReader.c:4104,1
    - Dst: ndpi_get_config
      Src: /src/ndpi/example/ndpiReader.c:4105,1
    - Dst: atoi
      Src: /src/ndpi/example/ndpiReader.c:4106,1
    - Dst: ndpi_get_lru_cache_stats
      Src: /src/ndpi/example/ndpiReader.c:4109,1
    - Dst: ndpi_get_automa_stats
      Src: /src/ndpi/example/ndpiReader.c:4121,1
    - Dst: ndpi_get_patricia_stats
      Src: /src/ndpi/example/ndpiReader.c:4129,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4139,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4140,1
    - Dst: formatBytes
      Src: /src/ndpi/example/ndpiReader.c:4140,1
    - Dst: ndpi_get_ndpi_detection_module_size
      Src: /src/ndpi/example/ndpiReader.c:4140,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4141,1
    - Dst: formatBytes
      Src: /src/ndpi/example/ndpiReader.c:4141,1
    - Dst: ndpi_detection_get_sizeof_ndpi_flow_struct
      Src: /src/ndpi/example/ndpiReader.c:4141,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4142,1
    - Dst: formatBytes
      Src: /src/ndpi/example/ndpiReader.c:4142,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4143,1
    - Dst: formatBytes
      Src: /src/ndpi/example/ndpiReader.c:4143,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4144,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4145,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4147,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4148,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4150,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4152,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4160,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4162,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4163,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4164,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4165,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4166,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4167,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4168,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4169,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4170,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4171,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4172,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4173,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4174,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4175,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4187,1
    - Dst: formatPackets
      Src: /src/ndpi/example/ndpiReader.c:4187,1
    - Dst: formatTraffic
      Src: /src/ndpi/example/ndpiReader.c:4187,1
    - Dst: localtime
      Src: /src/ndpi/example/ndpiReader.c:4198,1
    - Dst: localtime_r
      Src: /src/ndpi/example/ndpiReader.c:4201,1
    - Dst: strftime
      Src: /src/ndpi/example/ndpiReader.c:4203,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4204,1
    - Dst: localtime
      Src: /src/ndpi/example/ndpiReader.c:4208,1
    - Dst: localtime_r
      Src: /src/ndpi/example/ndpiReader.c:4211,1
    - Dst: strftime
      Src: /src/ndpi/example/ndpiReader.c:4213,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4214,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4215,1
    - Dst: formatPackets
      Src: /src/ndpi/example/ndpiReader.c:4215,1
    - Dst: formatTraffic
      Src: /src/ndpi/example/ndpiReader.c:4215,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4216,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4220,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4223,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4227,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4231,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4237,1
    - Dst: ndpi_confidence_get_name
      Src: /src/ndpi/example/ndpiReader.c:4237,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4244,1
    - Dst: ndpi_fpc_confidence_get_name
      Src: /src/ndpi/example/ndpiReader.c:4244,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4253,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4257,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4261,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4265,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4269,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4273,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4277,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4281,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4286,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4289,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4292,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4295,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4298,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4302,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4305,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4308,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4311,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4314,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4317,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4322,1
    - Dst: ndpi_print_bin
      Src: /src/ndpi/example/ndpiReader.c:4322,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4328,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4331,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4335,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4339,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4345,1
    - Dst: ndpi_confidence_get_name
      Src: /src/ndpi/example/ndpiReader.c:4346,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4353,1
    - Dst: ndpi_fpc_confidence_get_name
      Src: /src/ndpi/example/ndpiReader.c:4354,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4363,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4367,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4371,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4375,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4379,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4383,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4387,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4391,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4396,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4399,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4402,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4405,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4408,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4412,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4415,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4418,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4421,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4424,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4427,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4432,1
    - Dst: ndpi_print_bin
      Src: /src/ndpi/example/ndpiReader.c:4432,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4435,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4438,1
    - Dst: ndpi_get_num_protocols
      Src: /src/ndpi/example/ndpiReader.c:4439,1
    - Dst: ndpi_get_proto_breed
      Src: /src/ndpi/example/ndpiReader.c:4440,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/example/ndpiReader.c:4441,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4450,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiReader.c:4451,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/example/ndpiReader.c:4452,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4457,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4464,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4466,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4470,1
    - Dst: ndpi_get_proto_name
      Src: /src/ndpi/example/ndpiReader.c:4472,1
    - Dst: ndpi_map_ndpi_id_to_user_proto_id
      Src: /src/ndpi/example/ndpiReader.c:4473,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4478,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4486,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4488,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4493,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4497,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4501,1
    - Dst: ndpi_get_proto_breed_name
      Src: /src/ndpi/example/ndpiReader.c:4503,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4509,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4512,1
    - Dst: ndpi_get_proto_breed_name
      Src: /src/ndpi/example/ndpiReader.c:4513,1
    - Dst: printRiskStats
      Src: /src/ndpi/example/ndpiReader.c:4519,1
    - Dst: printFlowsStats
      Src: /src/ndpi/example/ndpiReader.c:4520,1
    - Dst: HASH_SORT
      Src: /src/ndpi/example/ndpiReader.c:4523,1
    - Dst: HASH_SORT
      Src: /src/ndpi/example/ndpiReader.c:4524,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4528,1
    - Dst: printPortStats
      Src: /src/ndpi/example/ndpiReader.c:4529,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4531,1
    - Dst: printPortStats
      Src: /src/ndpi/example/ndpiReader.c:4532,1
    - Dst: deleteScanners
      Src: /src/ndpi/example/ndpiReader.c:4537,1
    - Dst: deleteReceivers
      Src: /src/ndpi/example/ndpiReader.c:4542,1
    - Dst: deleteReceivers
      Src: /src/ndpi/example/ndpiReader.c:4547,1
    - Dst: deletePortsStats
      Src: /src/ndpi/example/ndpiReader.c:4552,1
    - Dst: deletePortsStats
      Src: /src/ndpi/example/ndpiReader.c:4557,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:4561,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:4562,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:4563,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:4564,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:4565,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:4566,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 311
    argCount: 2
    argNames:
    - processing_time_usec
    - setup_time_usec
    argTypes:
    - u_int64_t
    - u_int64_t
    constantsTouched: []
    func_position:
      end: 4567
      start: 4013
    functionDepth: 11
    functionLinenumber: 4013
    functionLinenumberEnd: 4567
    functionName: printResults
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - memset
    - fprintf
    - atoi
    - ndpi_fpc_confidence_get_name
    - ndpi_free
    - deleteReceivers
    - ndpi_get_automa_stats
    - localtime
    - ndpi_get_config
    - snprintf
    - ndpi_lru_cache_idx_to_name
    - ndpi_twalk
    - ndpi_get_ndpi_detection_module_size
    - ndpi_get_num_protocols
    - deletePortsStats
    - deleteScanners
    - localtime_r
    - formatBytes
    - ndpi_get_proto_name
    - formatPackets
    - ndpi_get_proto_breed_name
    - printRiskStats
    - ndpi_calloc
    - ndpi_confidence_get_name
    - ndpi_print_bin
    - ndpi_detection_get_sizeof_ndpi_flow_struct
    - ndpi_map_ndpi_id_to_user_proto_id
    - ndpi_get_proto_breed
    - printFlowsStats
    - printf
    - ndpi_get_lru_cache_stats
    - ndpi_get_patricia_stats
    - strftime
    - HASH_SORT
    - printPortStats
    - formatTraffic
    linkageType: ''
    returnType: void
    signature: void printResults(u_int64_t processing_time_usec, u_int64_t setup_time_usec)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcap_breakloop
      Src: /src/ndpi/example/ndpiReader.c:4577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - thread_id
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 4580
      start: 4572
    functionDepth: 0
    functionLinenumber: 4572
    functionLinenumberEnd: 4580
    functionName: breakPcapLoop
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - pcap_breakloop
    linkageType: ''
    returnType: void
    signature: void breakPcapLoop(u_int16_t thread_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: breakPcapLoop
      Src: /src/ndpi/example/ndpiReader.c:4596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    constantsTouched: []
    func_position:
      end: 4597
      start: 4585
    functionDepth: 1
    functionLinenumber: 4585
    functionLinenumberEnd: 4597
    functionName: sigproc
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - breakPcapLoop
    linkageType: ''
    returnType: void
    signature: void sigproc(int sig)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:4608,1
    - Dst: fgets
      Src: /src/ndpi/example/ndpiReader.c:4613,1
    - Dst: fclose
      Src: /src/ndpi/example/ndpiReader.c:4619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - thread_id
    - filename
    - filename_len
    argTypes:
    - u_int16_t
    - char[]
    - u_int32_t
    constantsTouched: []
    func_position:
      end: 4623
      start: 4605
    functionDepth: 0
    functionLinenumber: 4605
    functionLinenumberEnd: 4623
    functionName: getNextPcapFileFromPlaylist
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - fclose
    - fopen
    - fgets
    linkageType: ''
    returnType: int
    signature: int getNextPcapFileFromPlaylist(u_int16_t thread_id, char filename[],
      u_int32_t filename_len)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcap_compile
      Src: /src/ndpi/example/ndpiReader.c:4634,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4635,1
    - Dst: pcap_geterr
      Src: /src/ndpi/example/ndpiReader.c:4635,1
    - Dst: pcap_setfilter
      Src: /src/ndpi/example/ndpiReader.c:4641,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4642,1
    - Dst: pcap_geterr
      Src: /src/ndpi/example/ndpiReader.c:4642,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4644,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pcap_handle
    argTypes:
    - pcap_t*
    constantsTouched: []
    func_position:
      end: 4647
      start: 4628
    functionDepth: 0
    functionLinenumber: 4628
    functionLinenumberEnd: 4647
    functionName: configurePcapHandle
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - pcap_geterr
    - pcap_compile
    - printf
    - pcap_setfilter
    linkageType: ''
    returnType: void
    signature: void configurePcapHandle(pcap_t * pcap_handle)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rte_pktmbuf_pool_create
      Src: /src/ndpi/example/ndpiReader.c:4664,1
    - Dst: rte_socket_id
      Src: /src/ndpi/example/ndpiReader.c:4667,1
    - Dst: rte_exit
      Src: /src/ndpi/example/ndpiReader.c:4670,1
    - Dst: dpdk_port_init
      Src: /src/ndpi/example/ndpiReader.c:4672,1
    - Dst: rte_exit
      Src: /src/ndpi/example/ndpiReader.c:4673,1
    - Dst: pcap_open_live
      Src: /src/ndpi/example/ndpiReader.c:4676,1
    - Dst: pcap_open_offline
      Src: /src/ndpi/example/ndpiReader.c:4684,1
    - Dst: strstr
      Src: /src/ndpi/example/ndpiReader.c:4687,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4688,1
    - Dst: getNextPcapFileFromPlaylist
      Src: /src/ndpi/example/ndpiReader.c:4691,1
    - Dst: pcap_open_offline
      Src: /src/ndpi/example/ndpiReader.c:4692,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4694,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:4695,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4698,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4702,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4709,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4711,1
    - Dst: configurePcapHandle
      Src: /src/ndpi/example/ndpiReader.c:4716,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4721,1
    - Dst: alarm
      Src: /src/ndpi/example/ndpiReader.c:4724,1
    - Dst: signal
      Src: /src/ndpi/example/ndpiReader.c:4725,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - thread_id
    - pcap_file
    argTypes:
    - u_int16_t
    - u_char*
    constantsTouched: []
    func_position:
      end: 4730
      start: 4654
    functionDepth: 1
    functionLinenumber: 4654
    functionLinenumberEnd: 4730
    functionName: openPcapFileOrDevice
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - pcap_open_live
    - dpdk_port_init
    - printf
    - rte_exit
    - signal
    - alarm
    - exit
    - strstr
    - configurePcapHandle
    - getNextPcapFileFromPlaylist
    - pcap_open_offline
    - rte_pktmbuf_pool_create
    - rte_socket_id
    linkageType: ''
    returnType: pcap_t
    signature: pcap_t * openPcapFileOrDevice(u_int16_t thread_id, const u_char * pcap_file)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/ndpi/example/ndpiReader.c:4750,1
    - Dst: ndpi_workflow_process_packet
      Src: /src/ndpi/example/ndpiReader.c:4751,1
    - Dst: ndpi_twalk
      Src: /src/ndpi/example/ndpiReader.c:4760,1
    - Dst: ndpi_tdelete
      Src: /src/ndpi/example/ndpiReader.c:4766,1
    - Dst: ndpi_free_flow_info_half
      Src: /src/ndpi/example/ndpiReader.c:4771,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:4772,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4783,1
    - Dst: memcpy
      Src: /src/ndpi/example/ndpiReader.c:4797,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4803,1
    - Dst: memcpy
      Src: /src/ndpi/example/ndpiReader.c:4808,1
    - Dst: memset
      Src: /src/ndpi/example/ndpiReader.c:4809,1
    - Dst: htonl
      Src: /src/ndpi/example/ndpiReader.c:4810,1
    - Dst: htonl64
      Src: /src/ndpi/example/ndpiReader.c:4817,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:4818,1
    - Dst: ndpi_risk2score
      Src: /src/ndpi/example/ndpiReader.c:4818,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:4819,1
    - Dst: strncpy
      Src: /src/ndpi/example/ndpiReader.c:4821,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:4824,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:4824,1
    - Dst: ndpi_protocol2name
      Src: /src/ndpi/example/ndpiReader.c:4825,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:4832,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:4837,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:4838,1
    - Dst: memcpy
      Src: /src/ndpi/example/ndpiReader.c:4839,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:4841,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:4845,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:4846,1
    - Dst: memcpy
      Src: /src/ndpi/example/ndpiReader.c:4847,1
    - Dst: htons
      Src: /src/ndpi/example/ndpiReader.c:4849,1
    - Dst: ntohs
      Src: /src/ndpi/example/ndpiReader.c:4859,1
    - Dst: ndpi_crc32
      Src: /src/ndpi/example/ndpiReader.c:4864,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4869,1
    - Dst: pcap_dump
      Src: /src/ndpi/example/ndpiReader.c:4872,1
    - Dst: pcap_dump_flush
      Src: /src/ndpi/example/ndpiReader.c:4873,1
    - Dst: memcmp
      Src: /src/ndpi/example/ndpiReader.c:4877,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4878,1
    - Dst: gettimeofday
      Src: /src/ndpi/example/ndpiReader.c:4885,1
    - Dst: printResults
      Src: /src/ndpi/example/ndpiReader.c:4889,1
    - Dst: ndpi_tdestroy
      Src: /src/ndpi/example/ndpiReader.c:4892,1
    - Dst: memset
      Src: /src/ndpi/example/ndpiReader.c:4895,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4899,1
    - Dst: memcpy
      Src: /src/ndpi/example/ndpiReader.c:4901,1
    - Dst: memcpy
      Src: /src/ndpi/example/ndpiReader.c:4902,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:4910,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 102
    argCount: 3
    argNames:
    - args
    - header
    - packet
    argTypes:
    - u_char*
    - struct pcap_pkthdr*
    - u_char*
    constantsTouched: []
    func_position:
      end: 4913
      start: 4735
    functionDepth: 12
    functionLinenumber: 4735
    functionLinenumberEnd: 4913
    functionName: ndpi_process_packet
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - memset
    - fprintf
    - ndpi_free
    - htonl64
    - ndpi_protocol2name
    - htonl
    - htons
    - ntohs
    - ndpi_twalk
    - ndpi_workflow_process_packet
    - pcap_dump
    - ndpi_crc32
    - memcmp
    - ndpi_free_flow_info_half
    - printResults
    - pcap_dump_flush
    - memcpy
    - printf
    - strncpy
    - ndpi_tdelete
    - ndpi_risk2score
    - ndpi_tdestroy
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: "void ndpi_process_packet(u_char *args,\n\t\t\t\tconst struct pcap_pkthdr
      *header,\n\t\t\t\tconst u_char *packet)"
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extcap_capture
      Src: /src/ndpi/example/ndpiReader.c:4928,1
    - Dst: ndpi_is_datalink_supported
      Src: /src/ndpi/example/ndpiReader.c:4933,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4934,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4939,1
    - Dst: pcap_geterr
      Src: /src/ndpi/example/ndpiReader.c:4939,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - thread_id
    argTypes:
    - u_int16_t
    constantsTouched: []
    func_position:
      end: 4941
      start: 4919
    functionDepth: 1
    functionLinenumber: 4919
    functionLinenumberEnd: 4941
    functionName: runPcapLoop
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_is_datalink_supported
    - pcap_geterr
    - printf
    - extcap_capture
    linkageType: ''
    returnType: void
    signature: void runPcapLoop(u_int16_t thread_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CPU_ZERO
      Src: /src/ndpi/example/ndpiReader.c:4961,1
    - Dst: CPU_SET
      Src: /src/ndpi/example/ndpiReader.c:4962,1
    - Dst: pthread_setaffinity_np
      Src: /src/ndpi/example/ndpiReader.c:4964,1
    - Dst: pthread_self
      Src: /src/ndpi/example/ndpiReader.c:4964,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:4965,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4967,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4973,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:4975,1
    - Dst: rte_eth_rx_burst
      Src: /src/ndpi/example/ndpiReader.c:4982,1
    - Dst: usleep
      Src: /src/ndpi/example/ndpiReader.c:4986,1
    - Dst: rte_prefetch0
      Src: /src/ndpi/example/ndpiReader.c:4991,1
    - Dst: rte_pktmbuf_mtod
      Src: /src/ndpi/example/ndpiReader.c:4991,1
    - Dst: gettimeofday
      Src: /src/ndpi/example/ndpiReader.c:4999,1
    - Dst: ndpi_process_packet
      Src: /src/ndpi/example/ndpiReader.c:5001,1
    - Dst: rte_pktmbuf_free
      Src: /src/ndpi/example/ndpiReader.c:5002,1
    - Dst: runPcapLoop
      Src: /src/ndpi/example/ndpiReader.c:5007,1
    - Dst: pcap_close
      Src: /src/ndpi/example/ndpiReader.c:5010,1
    - Dst: getNextPcapFileFromPlaylist
      Src: /src/ndpi/example/ndpiReader.c:5017,1
    - Dst: pcap_open_offline
      Src: /src/ndpi/example/ndpiReader.c:5018,1
    - Dst: configurePcapHandle
      Src: /src/ndpi/example/ndpiReader.c:5019,1
    - Dst: pcap_freecode
      Src: /src/ndpi/example/ndpiReader.c:5025,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 1
    argNames:
    - _thread_id
    argTypes:
    - void*
    constantsTouched: []
    func_position:
      end: 5030
      start: 4947
    functionDepth: 2
    functionLinenumber: 4947
    functionLinenumberEnd: 5030
    functionName: processing_thread
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - fprintf
    - pthread_self
    - CPU_ZERO
    - rte_eth_rx_burst
    - rte_prefetch0
    - rte_pktmbuf_free
    - pcap_close
    - pthread_setaffinity_np
    - usleep
    - runPcapLoop
    - rte_pktmbuf_mtod
    - getNextPcapFileFromPlaylist
    - printf
    - CPU_SET
    - ndpi_process_packet
    - configurePcapHandle
    - pcap_open_offline
    - pcap_freecode
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void * processing_thread(void *_thread_id)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:5046,1
    - Dst: set_ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:5046,1
    - Dst: set_ndpi_flow_malloc
      Src: /src/ndpi/example/ndpiReader.c:5047,1
    - Dst: set_ndpi_flow_free
      Src: /src/ndpi/example/ndpiReader.c:5047,1
    - Dst: ndpi_global_init
      Src: /src/ndpi/example/ndpiReader.c:5054,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5056,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:5057,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5062,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5069,1
    - Dst: openPcapFileOrDevice
      Src: /src/ndpi/example/ndpiReader.c:5072,1
    - Dst: setupDetection
      Src: /src/ndpi/example/ndpiReader.c:5073,1
    - Dst: gettimeofday
      Src: /src/ndpi/example/ndpiReader.c:5076,1
    - Dst: pthread_create
      Src: /src/ndpi/example/ndpiReader.c:5083,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5087,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5089,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:5091,1
    - Dst: pthread_join
      Src: /src/ndpi/example/ndpiReader.c:5096,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5100,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5102,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:5104,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5108,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5110,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:5112,1
    - Dst: dpdk_port_deinit
      Src: /src/ndpi/example/ndpiReader.c:5117,1
    - Dst: gettimeofday
      Src: /src/ndpi/example/ndpiReader.c:5120,1
    - Dst: printResults
      Src: /src/ndpi/example/ndpiReader.c:5125,1
    - Dst: pcap_close
      Src: /src/ndpi/example/ndpiReader.c:5129,1
    - Dst: terminateDetection
      Src: /src/ndpi/example/ndpiReader.c:5131,1
    - Dst: ndpi_global_deinit
      Src: /src/ndpi/example/ndpiReader.c:5134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5135
      start: 5037
    functionDepth: 12
    functionLinenumber: 5037
    functionLinenumberEnd: 5135
    functionName: test_lib
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_global_deinit
    - fprintf
    - setupDetection
    - set_ndpi_free
    - set_ndpi_flow_free
    - set_ndpi_flow_malloc
    - dpdk_port_deinit
    - printResults
    - terminateDetection
    - set_ndpi_malloc
    - exit
    - openPcapFileOrDevice
    - pthread_join
    - ndpi_global_init
    - pthread_create
    - pcap_close
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void test_lib()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/ndpi/example/ndpiReader.c:5149,1
    - Dst: time
      Src: /src/ndpi/example/ndpiReader.c:5149,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5151,1
    - Dst: ndpi_malloc
      Src: /src/ndpi/example/ndpiReader.c:5151,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/example/ndpiReader.c:5154,1
    - Dst: ndpi_set_bin
      Src: /src/ndpi/example/ndpiReader.c:5157,1
    - Dst: rand
      Src: /src/ndpi/example/ndpiReader.c:5157,1
    - Dst: ndpi_normalize_bin
      Src: /src/ndpi/example/ndpiReader.c:5159,1
    - Dst: ndpi_cluster_bins
      Src: /src/ndpi/example/ndpiReader.c:5162,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5165,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5170,1
    - Dst: ndpi_print_bin
      Src: /src/ndpi/example/ndpiReader.c:5171,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/example/ndpiReader.c:5178,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:5180,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/example/ndpiReader.c:5184,1
    - Dst: ndpi_init_bin
      Src: /src/ndpi/example/ndpiReader.c:5185,1
    - Dst: ndpi_set_bin
      Src: /src/ndpi/example/ndpiReader.c:5187,1
    - Dst: ndpi_set_bin
      Src: /src/ndpi/example/ndpiReader.c:5188,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5190,1
    - Dst: ndpi_bin_similarity
      Src: /src/ndpi/example/ndpiReader.c:5190,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/example/ndpiReader.c:5192,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/example/ndpiReader.c:5192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5195
      start: 5140
    functionDepth: 3
    functionLinenumber: 5140
    functionLinenumberEnd: 5195
    functionName: binUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_bin_similarity
    - ndpi_cluster_bins
    - printf
    - ndpi_free
    - ndpi_set_bin
    - ndpi_malloc
    - rand
    - time
    - assert
    - ndpi_free_bin
    - ndpi_print_bin
    - ndpi_init_bin
    - ndpi_normalize_bin
    - srand
    linkageType: ''
    returnType: void
    signature: void binUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:5251,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5253,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:5255,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5257,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5260,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5261,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/example/ndpiReader.c:5261,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5265,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5266,1
    - Dst: ndpi_check_dga_name
      Src: /src/ndpi/example/ndpiReader.c:5266,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:5269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5270
      start: 5202
    functionDepth: 4
    functionLinenumber: 5202
    functionLinenumberEnd: 5270
    functionName: dgaUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_check_dga_name
    - assert
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: void
    signature: void dgaUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5279,1
    - Dst: ndpi_hll_init
      Src: /src/ndpi/example/ndpiReader.c:5279,1
    - Dst: ndpi_hll_add_number
      Src: /src/ndpi/example/ndpiReader.c:5282,1
    - Dst: ndpi_hll_destroy
      Src: /src/ndpi/example/ndpiReader.c:5286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5287
      start: 5274
    functionDepth: 2
    functionLinenumber: 5274
    functionLinenumberEnd: 5287
    functionName: hllUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_hll_destroy
    - assert
    - ndpi_hll_add_number
    - ndpi_hll_init
    linkageType: ''
    returnType: void
    signature: void hllUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ZERO_BIT
      Src: /src/ndpi/example/ndpiReader.c:5297,1
    - Dst: NDPI_SET_BIT
      Src: /src/ndpi/example/ndpiReader.c:5298,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5300,1
    - Dst: NDPI_ISSET_BIT
      Src: /src/ndpi/example/ndpiReader.c:5300,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5304,1
    - Dst: NDPI_ISSET_BIT
      Src: /src/ndpi/example/ndpiReader.c:5304,1
    - Dst: NDPI_ZERO_BIT
      Src: /src/ndpi/example/ndpiReader.c:5311,1
    - Dst: NDPI_SET_BIT
      Src: /src/ndpi/example/ndpiReader.c:5312,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5314,1
    - Dst: NDPI_ISSET_BIT
      Src: /src/ndpi/example/ndpiReader.c:5314,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5318,1
    - Dst: NDPI_ISSET_BIT
      Src: /src/ndpi/example/ndpiReader.c:5318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5322
      start: 5291
    functionDepth: 0
    functionLinenumber: 5291
    functionLinenumberEnd: 5322
    functionName: bitmapUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - NDPI_SET_BIT
    - NDPI_ISSET_BIT
    - assert
    - NDPI_ZERO_BIT
    linkageType: ''
    returnType: void
    signature: void bitmapUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5329,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5330,1
    - Dst: ndpi_add_string_to_automa
      Src: /src/ndpi/example/ndpiReader.c:5330,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:5330,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5331,1
    - Dst: ndpi_add_string_to_automa
      Src: /src/ndpi/example/ndpiReader.c:5331,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:5331,1
    - Dst: ndpi_finalize_automa
      Src: /src/ndpi/example/ndpiReader.c:5332,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5333,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5333,1
    - Dst: ndpi_free_automa
      Src: /src/ndpi/example/ndpiReader.c:5334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5335
      start: 5326
    functionDepth: 3
    functionLinenumber: 5326
    functionLinenumberEnd: 5335
    functionName: automataUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_strdup
    - ndpi_finalize_automa
    - ndpi_add_string_to_automa
    - assert
    - ndpi_free_automa
    - ndpi_match_string
    linkageType: ''
    returnType: void
    signature: void automataUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5342,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5343,1
    - Dst: ndpi_add_string_to_automa
      Src: /src/ndpi/example/ndpiReader.c:5343,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:5343,1
    - Dst: ndpi_finalize_automa
      Src: /src/ndpi/example/ndpiReader.c:5344,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5345,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5345,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5346,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5346,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5347,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5347,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5348,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5348,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5349,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5349,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5350,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5350,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5351,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5351,1
    - Dst: ndpi_free_automa
      Src: /src/ndpi/example/ndpiReader.c:5352,1
    - Dst: ndpi_init_automa_domain
      Src: /src/ndpi/example/ndpiReader.c:5354,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5355,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5356,1
    - Dst: ndpi_add_string_to_automa
      Src: /src/ndpi/example/ndpiReader.c:5356,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:5356,1
    - Dst: ndpi_finalize_automa
      Src: /src/ndpi/example/ndpiReader.c:5357,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5358,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5358,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5359,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5359,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5360,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5360,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5361,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5361,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5362,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5362,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5363,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5363,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5364,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5364,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5365,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5365,1
    - Dst: ndpi_free_automa
      Src: /src/ndpi/example/ndpiReader.c:5366,1
    - Dst: ndpi_init_automa_domain
      Src: /src/ndpi/example/ndpiReader.c:5368,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5369,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5370,1
    - Dst: ndpi_add_string_to_automa
      Src: /src/ndpi/example/ndpiReader.c:5370,1
    - Dst: ndpi_strdup
      Src: /src/ndpi/example/ndpiReader.c:5370,1
    - Dst: ndpi_finalize_automa
      Src: /src/ndpi/example/ndpiReader.c:5371,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5372,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5372,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5373,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5373,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5374,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5374,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5375,1
    - Dst: ndpi_match_string
      Src: /src/ndpi/example/ndpiReader.c:5375,1
    - Dst: ndpi_free_automa
      Src: /src/ndpi/example/ndpiReader.c:5376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5339
    functionDepth: 3
    functionLinenumber: 5339
    functionLinenumberEnd: 5377
    functionName: automataDomainsUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_strdup
    - ndpi_finalize_automa
    - ndpi_add_string_to_automa
    - assert
    - ndpi_free_automa
    - ndpi_match_string
    - ndpi_init_automa_domain
    linkageType: ''
    returnType: void
    signature: void automataDomainsUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/example/ndpiReader.c:5386,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/example/ndpiReader.c:5390,1
    - Dst: rand
      Src: /src/ndpi/example/ndpiReader.c:5390,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5397,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:5398,1
    - Dst: ndpi_data_window_average
      Src: /src/ndpi/example/ndpiReader.c:5398,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5399,1
    - Dst: ndpi_data_entropy
      Src: /src/ndpi/example/ndpiReader.c:5399,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5401,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:5402,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:5402,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/example/ndpiReader.c:5405,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:5408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5410
      start: 5385
    functionDepth: 2
    functionLinenumber: 5385
    functionLinenumberEnd: 5410
    functionName: analyzeUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_data_entropy
    - rand
    - ndpi_free_data_analysis
    - ndpi_data_add_value
    - exit
    - ndpi_data_min
    - ndpi_data_window_average
    - ndpi_data_max
    - ndpi_data_average
    - ndpi_alloc_data_analysis
    linkageType: ''
    returnType: void
    signature: void analyzeUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - array
    - size
    argTypes:
    - int[]
    - int
    constantsTouched: []
    func_position:
      end: 5422
      start: 5418
    functionDepth: 0
    functionLinenumber: 5418
    functionLinenumberEnd: 5422
    functionName: bpf_filter_port_array_init
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bpf_filter_port_array_init(int array[], int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - array
    - size
    argTypes:
    - char*[]
    - int
    constantsTouched: []
    func_position:
      end: 5433
      start: 5429
    functionDepth: 0
    functionLinenumber: 5429
    functionLinenumberEnd: 5433
    functionName: bpf_filter_host_array_init
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bpf_filter_host_array_init(const char *array[48], int size)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:5445,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5452,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:5453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - filter_array
    - size
    - host
    argTypes:
    - char*[]
    - int
    - char*
    constantsTouched: []
    func_position:
      end: 5454
      start: 5441
    functionDepth: 0
    functionLinenumber: 5441
    functionLinenumberEnd: 5454
    functionName: bpf_filter_host_array_add
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void bpf_filter_host_array_add(const char *filter_array[48], int size,
      const char *host)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5473,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:5474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - filter_array
    - size
    - port
    argTypes:
    - int[]
    - int
    - int
    constantsTouched: []
    func_position:
      end: 5475
      start: 5463
    functionDepth: 0
    functionLinenumber: 5463
    functionLinenumberEnd: 5475
    functionName: bpf_filter_port_array_add
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void bpf_filter_port_array_add(int filter_array[], int size, int port)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_alloc_data_analysis
      Src: /src/ndpi/example/ndpiReader.c:5480,1
    - Dst: ndpi_data_add_value
      Src: /src/ndpi/example/ndpiReader.c:5484,1
    - Dst: ndpi_data_print_window_values
      Src: /src/ndpi/example/ndpiReader.c:5487,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5488,1
    - Dst: ndpi_data_average
      Src: /src/ndpi/example/ndpiReader.c:5488,1
    - Dst: ndpi_data_window_average
      Src: /src/ndpi/example/ndpiReader.c:5488,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5489,1
    - Dst: ndpi_data_entropy
      Src: /src/ndpi/example/ndpiReader.c:5489,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5490,1
    - Dst: ndpi_data_stddev
      Src: /src/ndpi/example/ndpiReader.c:5490,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5491,1
    - Dst: ndpi_data_min
      Src: /src/ndpi/example/ndpiReader.c:5492,1
    - Dst: ndpi_data_max
      Src: /src/ndpi/example/ndpiReader.c:5493,1
    - Dst: ndpi_free_data_analysis
      Src: /src/ndpi/example/ndpiReader.c:5496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5497
      start: 5479
    functionDepth: 2
    functionLinenumber: 5479
    functionLinenumberEnd: 5497
    functionName: analysisUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_data_stddev
    - ndpi_data_print_window_values
    - ndpi_data_entropy
    - ndpi_free_data_analysis
    - ndpi_data_add_value
    - ndpi_data_min
    - ndpi_data_window_average
    - ndpi_data_max
    - ndpi_data_average
    - ndpi_alloc_data_analysis
    linkageType: ''
    returnType: void
    signature: void analysisUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5537,1
    - Dst: ndpi_alloc_rsi
      Src: /src/ndpi/example/ndpiReader.c:5537,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5544,1
    - Dst: ndpi_free_rsi
      Src: /src/ndpi/example/ndpiReader.c:5547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5548
      start: 5501
    functionDepth: 1
    functionLinenumber: 5501
    functionLinenumberEnd: 5548
    functionName: rsiUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_free_rsi
    - printf
    - assert
    - ndpi_alloc_rsi
    linkageType: ''
    returnType: void
    signature: void rsiUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5557,1
    - Dst: ndpi_hash_init
      Src: /src/ndpi/example/ndpiReader.c:5557,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5558,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:5561,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5564,1
    - Dst: ndpi_hash_add_entry
      Src: /src/ndpi/example/ndpiReader.c:5564,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5565,1
    - Dst: ndpi_hash_find_entry
      Src: /src/ndpi/example/ndpiReader.c:5565,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5566,1
    - Dst: ndpi_hash_free
      Src: /src/ndpi/example/ndpiReader.c:5569,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5571
      start: 5552
    functionDepth: 1
    functionLinenumber: 5552
    functionLinenumberEnd: 5571
    functionName: hashUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_hash_free
    - ndpi_hash_init
    - ndpi_hash_add_entry
    - assert
    - ndpi_hash_find_entry
    - strlen
    linkageType: ''
    returnType: void
    signature: void hashUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5583,1
    - Dst: ndpi_hw_init
      Src: /src/ndpi/example/ndpiReader.c:5583,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5586,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5596,1
    - Dst: ndpi_hw_free
      Src: /src/ndpi/example/ndpiReader.c:5601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5603
      start: 5575
    functionDepth: 3
    functionLinenumber: 5575
    functionLinenumberEnd: 5603
    functionName: hwUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_hw_init
    - assert
    - printf
    - ndpi_hw_free
    linkageType: ''
    returnType: void
    signature: void hwUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:5643,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5645,1
    - Dst: ndpi_hw_init
      Src: /src/ndpi/example/ndpiReader.c:5645,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5649,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5652,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5663,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5668,1
    - Dst: fclose
      Src: /src/ndpi/example/ndpiReader.c:5674,1
    - Dst: ndpi_hw_free
      Src: /src/ndpi/example/ndpiReader.c:5676,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5679
      start: 5607
    functionDepth: 3
    functionLinenumber: 5607
    functionLinenumberEnd: 5679
    functionName: hwUnitTest2
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - fprintf
    - printf
    - ndpi_hw_init
    - fclose
    - fopen
    - assert
    - ndpi_hw_free
    linkageType: ''
    returnType: void
    signature: void hwUnitTest2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:5718,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5720,1
    - Dst: ndpi_ses_init
      Src: /src/ndpi/example/ndpiReader.c:5720,1
    - Dst: ndpi_ses_reset
      Src: /src/ndpi/example/ndpiReader.c:5721,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5724,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5727,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5738,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5743,1
    - Dst: fclose
      Src: /src/ndpi/example/ndpiReader.c:5749,1
    - Dst: ndpi_ses_fitting
      Src: /src/ndpi/example/ndpiReader.c:5751,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5752
      start: 5683
    functionDepth: 4
    functionLinenumber: 5683
    functionLinenumberEnd: 5752
    functionName: sesUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_ses_fitting
    - ndpi_ses_init
    - ndpi_ses_reset
    - printf
    - fprintf
    - fclose
    - fopen
    - assert
    linkageType: ''
    returnType: void
    signature: void sesUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:5791,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5793,1
    - Dst: ndpi_des_init
      Src: /src/ndpi/example/ndpiReader.c:5793,1
    - Dst: ndpi_des_reset
      Src: /src/ndpi/example/ndpiReader.c:5794,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5797,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5800,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5811,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:5816,1
    - Dst: fclose
      Src: /src/ndpi/example/ndpiReader.c:5822,1
    - Dst: ndpi_des_fitting
      Src: /src/ndpi/example/ndpiReader.c:5824,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5825
      start: 5756
    functionDepth: 4
    functionLinenumber: 5756
    functionLinenumberEnd: 5825
    functionName: desUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - fprintf
    - printf
    - fclose
    - fopen
    - ndpi_des_init
    - ndpi_des_fitting
    - assert
    - ndpi_des_reset
    linkageType: ''
    returnType: void
    signature: void desUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5836,1
    - Dst: ndpi_des_init
      Src: /src/ndpi/example/ndpiReader.c:5836,1
    - Dst: ndpi_des_reset
      Src: /src/ndpi/example/ndpiReader.c:5837,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5840,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5852,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5857
      start: 5829
    functionDepth: 3
    functionLinenumber: 5829
    functionLinenumberEnd: 5857
    functionName: desUnitStressTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_des_reset
    - assert
    - printf
    - ndpi_des_init
    linkageType: ''
    returnType: void
    signature: void desUnitStressTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5885,1
    - Dst: ndpi_hw_init
      Src: /src/ndpi/example/ndpiReader.c:5885,1
    - Dst: ndpi_hw_reset
      Src: /src/ndpi/example/ndpiReader.c:5886,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5889,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5899,1
    - Dst: ndpi_hw_free
      Src: /src/ndpi/example/ndpiReader.c:5905,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5906
      start: 5861
    functionDepth: 3
    functionLinenumber: 5861
    functionLinenumberEnd: 5906
    functionName: hwUnitTest3
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_hw_init
    - ndpi_hw_reset
    - assert
    - ndpi_hw_free
    linkageType: ''
    returnType: void
    signature: void hwUnitTest3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5917,1
    - Dst: ndpi_jitter_init
      Src: /src/ndpi/example/ndpiReader.c:5917,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5923,1
    - Dst: ndpi_jitter_free
      Src: /src/ndpi/example/ndpiReader.c:5926,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5927
      start: 5910
    functionDepth: 1
    functionLinenumber: 5910
    functionLinenumberEnd: 5927
    functionName: jitterUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - assert
    - printf
    - ndpi_jitter_init
    - ndpi_jitter_free
    linkageType: ''
    returnType: void
    signature: void jitterUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_bitmap_alloc
      Src: /src/ndpi/example/ndpiReader.c:5932,1
    - Dst: rand
      Src: /src/ndpi/example/ndpiReader.c:5940,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5942,1
    - Dst: ndpi_bitmap_set
      Src: /src/ndpi/example/ndpiReader.c:5943,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5944,1
    - Dst: ndpi_bitmap_isset
      Src: /src/ndpi/example/ndpiReader.c:5944,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5947,1
    - Dst: ndpi_bitmap_serialize
      Src: /src/ndpi/example/ndpiReader.c:5949,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5950,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5952,1
    - Dst: ndpi_bitmap_deserialize
      Src: /src/ndpi/example/ndpiReader.c:5953,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5954,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5956,1
    - Dst: ndpi_bitmap_iterator_alloc
      Src: /src/ndpi/example/ndpiReader.c:5956,1
    - Dst: ndpi_bitmap_iterator_next
      Src: /src/ndpi/example/ndpiReader.c:5957,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5958,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:5961,1
    - Dst: ndpi_bitmap_iterator_free
      Src: /src/ndpi/example/ndpiReader.c:5962,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:5964,1
    - Dst: ndpi_bitmap_free
      Src: /src/ndpi/example/ndpiReader.c:5965,1
    - Dst: ndpi_bitmap_free
      Src: /src/ndpi/example/ndpiReader.c:5966,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5967
      start: 5931
    functionDepth: 1
    functionLinenumber: 5931
    functionLinenumberEnd: 5967
    functionName: compressedBitmapUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmap_deserialize
    - ndpi_bitmap_alloc
    - ndpi_bitmap_isset
    - printf
    - ndpi_bitmap_iterator_alloc
    - ndpi_free
    - ndpi_bitmap_free
    - rand
    - ndpi_bitmap_set
    - assert
    - ndpi_bitmap_serialize
    - ndpi_bitmap_iterator_free
    - ndpi_bitmap_iterator_next
    linkageType: ''
    returnType: void
    signature: void compressedBitmapUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5974,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/example/ndpiReader.c:5974,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5975,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5976,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/example/ndpiReader.c:5976,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5977,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5978,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/example/ndpiReader.c:5978,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5979,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5980,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/example/ndpiReader.c:5980,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5981,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5982,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/example/ndpiReader.c:5982,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5983,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5984,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/example/ndpiReader.c:5984,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5985,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5986,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/example/ndpiReader.c:5986,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5987,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5988,1
    - Dst: ndpi_strtonum
      Src: /src/ndpi/example/ndpiReader.c:5988,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 5990
      start: 5971
    functionDepth: 1
    functionLinenumber: 5971
    functionLinenumberEnd: 5990
    functionName: strtonumUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - assert
    - ndpi_strtonum
    linkageType: ''
    returnType: void
    signature: void strtonumUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5997,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/example/ndpiReader.c:5997,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:5998,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6002,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/example/ndpiReader.c:6002,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6003,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6003,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6007,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/example/ndpiReader.c:6007,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6008,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6008,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6012,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/example/ndpiReader.c:6012,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6013,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6013,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6017,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/example/ndpiReader.c:6017,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6018,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6022,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/example/ndpiReader.c:6022,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6025,1
    - Dst: ndpi_strlcpy
      Src: /src/ndpi/example/ndpiReader.c:6025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6026
      start: 5994
    functionDepth: 1
    functionLinenumber: 5994
    functionLinenumberEnd: 6026
    functionName: strlcpyUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    - ndpi_strlcpy
    linkageType: ''
    returnType: void
    signature: void strlcpyUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6032,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6032,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6033,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6033,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6036,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6036,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6036,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6039,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6039,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6039,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6040,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6040,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6043,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6043,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6043,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6044,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6044,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6047,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6047,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6047,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6050,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6050,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6050,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6053,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6053,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6053,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6056,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6056,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6056,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6059,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6059,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6062,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6062,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6062,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6065,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6065,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6065,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6066,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6066,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6069,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6069,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6072,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6072,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6075,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6075,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6075,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6076,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6076,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6076,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6077,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6077,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6078,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6078,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6079,1
    - Dst: ndpi_strnstr
      Src: /src/ndpi/example/ndpiReader.c:6079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6080
      start: 6030
    functionDepth: 0
    functionLinenumber: 6030
    functionLinenumberEnd: 6080
    functionName: strnstrUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_strnstr
    - assert
    - strcmp
    linkageType: ''
    returnType: void
    signature: void strnstrUnitTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6086,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6086,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6087,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6087,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6090,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6090,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6090,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6093,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6093,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6093,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6094,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6094,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6094,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6095,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6095,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6095,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6096,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6096,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6097,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6097,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6100,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6100,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6100,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6101,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6101,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6101,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6102,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6102,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6103,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6103,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6106,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6106,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6106,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6107,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6107,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6107,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6108,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6108,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6108,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6109,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6109,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6109,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6112,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6112,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6112,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6113,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6113,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6113,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6116,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6116,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6116,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6117,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6117,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6117,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6120,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6120,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6120,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6121,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6121,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6121,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6122,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6122,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6122,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6125,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6125,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6128,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6128,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6128,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6129,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6129,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6129,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6130,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6130,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6130,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6133,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6133,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6133,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6134,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6134,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6137,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6137,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6140,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6140,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6143,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6143,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6143,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6144,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6144,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6144,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6145,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6145,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6146,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6146,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6147,1
    - Dst: ndpi_strncasestr
      Src: /src/ndpi/example/ndpiReader.c:6147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6148
      start: 6084
    functionDepth: 1
    functionLinenumber: 6084
    functionLinenumberEnd: 6148
    functionName: strncasestrUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    - ndpi_strncasestr
    linkageType: ''
    returnType: void
    signature: void strncasestrUnitTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6154,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6154,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6155,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6155,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6156,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6156,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6157,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6157,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6158,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6158,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6159,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6159,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6162,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6162,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6162,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6163,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6163,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6163,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6164,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6164,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6164,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6165,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6165,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6168,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6168,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6168,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6171,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6171,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6171,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6172,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6172,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6175,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6175,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6175,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6176,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6176,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6179,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6179,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6179,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6182,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6182,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6182,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6185,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6185,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6185,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6185,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6185,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6188,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6188,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6188,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6191,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6191,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6191,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6194,1
    - Dst: ndpi_memmem
      Src: /src/ndpi/example/ndpiReader.c:6194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6195
      start: 6152
    functionDepth: 1
    functionLinenumber: 6152
    functionLinenumberEnd: 6195
    functionName: memmemUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_memmem
    - strlen
    - assert
    - strcmp
    linkageType: ''
    returnType: void
    signature: void memmemUnitTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6202,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6202,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6203,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6203,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6204,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6204,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6207,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6207,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6210,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6210,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6211,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6211,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6212,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6212,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6213,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6213,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6216,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6216,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6217,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6217,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6220,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6220,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6221,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6221,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6222,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6222,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6223,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6223,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6224,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6224,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6227,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6227,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6228,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6228,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6229,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6229,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6230,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6230,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6231,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6231,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6236,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6236,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6240,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6240,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6244,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6244,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6248,1
    - Dst: ndpi_memcasecmp
      Src: /src/ndpi/example/ndpiReader.c:6248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6249
      start: 6199
    functionDepth: 1
    functionLinenumber: 6199
    functionLinenumberEnd: 6249
    functionName: memcasecmpUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_memcasecmp
    - assert
    linkageType: ''
    returnType: void
    signature: void memcasecmpUnitTest(void)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_mahalanobis_distance
      Src: /src/ndpi/example/ndpiReader.c:6264,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6268
      start: 6253
    functionDepth: 1
    functionLinenumber: 6253
    functionLinenumberEnd: 6268
    functionName: mahalanobisUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_mahalanobis_distance
    - assert
    linkageType: ''
    returnType: void
    signature: void mahalanobisUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6277,1
    - Dst: ndpi_bitmask_alloc
      Src: /src/ndpi/example/ndpiReader.c:6277,1
    - Dst: ndpi_bitmask_set
      Src: /src/ndpi/example/ndpiReader.c:6279,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6280,1
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/example/ndpiReader.c:6280,1
    - Dst: ndpi_bitmask_clear
      Src: /src/ndpi/example/ndpiReader.c:6283,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6284,1
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/example/ndpiReader.c:6284,1
    - Dst: ndpi_bitmask_set_all
      Src: /src/ndpi/example/ndpiReader.c:6286,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6288,1
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/example/ndpiReader.c:6288,1
    - Dst: ndpi_bitmask_reset
      Src: /src/ndpi/example/ndpiReader.c:6289,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6291,1
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/example/ndpiReader.c:6291,1
    - Dst: ndpi_bitmask_set
      Src: /src/ndpi/example/ndpiReader.c:6293,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6294,1
    - Dst: ndpi_bitmask_is_set
      Src: /src/ndpi/example/ndpiReader.c:6294,1
    - Dst: ndpi_bitmask_free
      Src: /src/ndpi/example/ndpiReader.c:6297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6298
      start: 6272
    functionDepth: 1
    functionLinenumber: 6272
    functionLinenumberEnd: 6298
    functionName: bitmaskUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_bitmask_reset
    - ndpi_bitmask_alloc
    - ndpi_bitmask_clear
    - assert
    - ndpi_bitmask_set
    - ndpi_bitmask_set_all
    - ndpi_bitmask_is_set
    - ndpi_bitmask_free
    linkageType: ''
    returnType: void
    signature: void bitmaskUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_filter_alloc
      Src: /src/ndpi/example/ndpiReader.c:6303,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6306,1
    - Dst: srand
      Src: /src/ndpi/example/ndpiReader.c:6308,1
    - Dst: time
      Src: /src/ndpi/example/ndpiReader.c:6308,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6311,1
    - Dst: ndpi_filter_add
      Src: /src/ndpi/example/ndpiReader.c:6311,1
    - Dst: rand
      Src: /src/ndpi/example/ndpiReader.c:6311,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6313,1
    - Dst: ndpi_filter_contains
      Src: /src/ndpi/example/ndpiReader.c:6313,1
    - Dst: ndpi_filter_free
      Src: /src/ndpi/example/ndpiReader.c:6315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6316
      start: 6302
    functionDepth: 2
    functionLinenumber: 6302
    functionLinenumberEnd: 6316
    functionName: filterUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_filter_free
    - ndpi_filter_contains
    - rand
    - time
    - assert
    - ndpi_filter_add
    - ndpi_filter_alloc
    - srand
    linkageType: ''
    returnType: void
    signature: void filterUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/example/ndpiReader.c:6324,1
    - Dst: ndpi_find_outliers
      Src: /src/ndpi/example/ndpiReader.c:6327,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6330,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6335
      start: 6320
    functionDepth: 3
    functionLinenumber: 6320
    functionLinenumberEnd: 6335
    functionName: zscoreUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - NDPI_ARRAY_LENGTH
    - printf
    - ndpi_find_outliers
    linkageType: ''
    returnType: void
    signature: void zscoreUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NDPI_ARRAY_LENGTH
      Src: /src/ndpi/example/ndpiReader.c:6342,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6349
      start: 6339
    functionDepth: 0
    functionLinenumber: 6339
    functionLinenumberEnd: 6349
    functionName: linearUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - NDPI_ARRAY_LENGTH
    - printf
    linkageType: ''
    returnType: void
    signature: void linearUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6357,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6358,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6359,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6360,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6361,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6362,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6363,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6364,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6365,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6366,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:6367,1
    - Dst: ndpi_cm_sketch_init
      Src: /src/ndpi/example/ndpiReader.c:6370,1
    - Dst: srand
      Src: /src/ndpi/example/ndpiReader.c:6376,1
    - Dst: time
      Src: /src/ndpi/example/ndpiReader.c:6376,1
    - Dst: rand
      Src: /src/ndpi/example/ndpiReader.c:6379,1
    - Dst: ndpi_cm_sketch_add
      Src: /src/ndpi/example/ndpiReader.c:6382,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6386,1
    - Dst: ndpi_cm_sketch_count
      Src: /src/ndpi/example/ndpiReader.c:6387,1
    - Dst: ndpi_cm_sketch_destroy
      Src: /src/ndpi/example/ndpiReader.c:6389,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:6392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6394
      start: 6353
    functionDepth: 2
    functionLinenumber: 6353
    functionLinenumberEnd: 6394
    functionName: sketchUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - printf
    - ndpi_cm_sketch_add
    - rand
    - ndpi_cm_sketch_init
    - exit
    - ndpi_cm_sketch_destroy
    - time
    - ndpi_cm_sketch_count
    - srand
    linkageType: ''
    returnType: void
    signature: void sketchUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_binary_bitmap_alloc
      Src: /src/ndpi/example/ndpiReader.c:6399,1
    - Dst: ndpi_binary_bitmap_set
      Src: /src/ndpi/example/ndpiReader.c:6403,1
    - Dst: ndpi_binary_bitmap_set
      Src: /src/ndpi/example/ndpiReader.c:6404,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6406,1
    - Dst: ndpi_binary_bitmap_isset
      Src: /src/ndpi/example/ndpiReader.c:6406,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6407,1
    - Dst: ndpi_binary_bitmap_free
      Src: /src/ndpi/example/ndpiReader.c:6408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6409
      start: 6398
    functionDepth: 3
    functionLinenumber: 6398
    functionLinenumberEnd: 6409
    functionName: binaryBitmapUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_binary_bitmap_isset
    - ndpi_binary_bitmap_alloc
    - ndpi_binary_bitmap_free
    - ndpi_binary_bitmap_set
    - assert
    linkageType: ''
    returnType: void
    signature: void binaryBitmapUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6421
      start: 6413
    functionDepth: 0
    functionLinenumber: 6413
    functionLinenumberEnd: 6421
    functionName: pearsonUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void pearsonUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6435
      start: 6425
    functionDepth: 0
    functionLinenumber: 6425
    functionLinenumberEnd: 6435
    functionName: outlierUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void outlierUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6440,1
    - Dst: snprintf
      Src: /src/ndpi/example/ndpiReader.c:6450,1
    - Dst: ndpi_load_hostname_category
      Src: /src/ndpi/example/ndpiReader.c:6451,1
    - Dst: snprintf
      Src: /src/ndpi/example/ndpiReader.c:6453,1
    - Dst: ndpi_load_ip_category
      Src: /src/ndpi/example/ndpiReader.c:6454,1
    - Dst: ndpi_enable_loaded_categories
      Src: /src/ndpi/example/ndpiReader.c:6457,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:6458,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6461
      start: 6439
    functionDepth: 5
    functionLinenumber: 6439
    functionLinenumberEnd: 6461
    functionName: loadStressTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_load_ip_category
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_enable_loaded_categories
    - snprintf
    - ndpi_exit_detection_module
    - ndpi_load_hostname_category
    linkageType: ''
    returnType: void
    signature: void loadStressTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_kd_create
      Src: /src/ndpi/example/ndpiReader.c:6466,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6477,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6480,1
    - Dst: ndpi_kd_insert
      Src: /src/ndpi/example/ndpiReader.c:6480,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6482,1
    - Dst: ndpi_kd_nearest
      Src: /src/ndpi/example/ndpiReader.c:6482,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6483,1
    - Dst: ndpi_kd_num_results
      Src: /src/ndpi/example/ndpiReader.c:6483,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6484,1
    - Dst: ndpi_kd_result_get_item
      Src: /src/ndpi/example/ndpiReader.c:6484,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6485,1
    - Dst: memcmp
      Src: /src/ndpi/example/ndpiReader.c:6485,1
    - Dst: ndpi_kd_result_free
      Src: /src/ndpi/example/ndpiReader.c:6486,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6488,1
    - Dst: ndpi_kd_nearest
      Src: /src/ndpi/example/ndpiReader.c:6488,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6489,1
    - Dst: ndpi_kd_num_results
      Src: /src/ndpi/example/ndpiReader.c:6489,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6490,1
    - Dst: ndpi_kd_result_get_item
      Src: /src/ndpi/example/ndpiReader.c:6490,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6491,1
    - Dst: memcmp
      Src: /src/ndpi/example/ndpiReader.c:6491,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6492,1
    - Dst: ndpi_kd_distance
      Src: /src/ndpi/example/ndpiReader.c:6492,1
    - Dst: ndpi_kd_result_free
      Src: /src/ndpi/example/ndpiReader.c:6493,1
    - Dst: ndpi_kd_free
      Src: /src/ndpi/example/ndpiReader.c:6495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6496
      start: 6465
    functionDepth: 2
    functionLinenumber: 6465
    functionLinenumberEnd: 6496
    functionName: kdUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_kd_free
    - memcmp
    - ndpi_kd_create
    - ndpi_kd_result_free
    - ndpi_kd_result_get_item
    - assert
    - ndpi_kd_num_results
    - ndpi_kd_distance
    - ndpi_kd_nearest
    - ndpi_kd_insert
    linkageType: ''
    returnType: void
    signature: void kdUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_btree_init
      Src: /src/ndpi/example/ndpiReader.c:6516,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6517,1
    - Dst: ndpi_btree_query
      Src: /src/ndpi/example/ndpiReader.c:6518,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6522,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6525,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6528,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6530,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6532,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6535,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6537,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6539,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6541,1
    - Dst: ndpi_free_knn
      Src: /src/ndpi/example/ndpiReader.c:6544,1
    - Dst: ndpi_free_btree
      Src: /src/ndpi/example/ndpiReader.c:6545,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6546
      start: 6500
    functionDepth: 2
    functionLinenumber: 6500
    functionLinenumberEnd: 6546
    functionName: ballTreeUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_free_knn
    - ndpi_free_btree
    - printf
    - assert
    - ndpi_btree_init
    - ndpi_btree_query
    linkageType: ''
    returnType: void
    signature: void ballTreeUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6554,1
    - Dst: ndpi_quick_encrypt
      Src: /src/ndpi/example/ndpiReader.c:6556,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6557,1
    - Dst: ndpi_quick_decrypt
      Src: /src/ndpi/example/ndpiReader.c:6558,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6559,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6560,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6562,1
    - Dst: strncmp
      Src: /src/ndpi/example/ndpiReader.c:6562,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:6564,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:6565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6566
      start: 6550
    functionDepth: 2
    functionLinenumber: 6550
    functionLinenumberEnd: 6566
    functionName: cryptDecryptUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ndpi_free
    - ndpi_quick_encrypt
    - assert
    - ndpi_quick_decrypt
    - strlen
    linkageType: ''
    returnType: void
    signature: void cryptDecryptUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6571,1
    - Dst: stat
      Src: /src/ndpi/example/ndpiReader.c:6575,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6581,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/example/ndpiReader.c:6581,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/example/ndpiReader.c:6583,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/example/ndpiReader.c:6584,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/example/ndpiReader.c:6585,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6587,1
    - Dst: ndpi_encode_domain
      Src: /src/ndpi/example/ndpiReader.c:6587,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6588,1
    - Dst: ndpi_encode_domain
      Src: /src/ndpi/example/ndpiReader.c:6588,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6590,1
    - Dst: ndpi_load_categories_dir
      Src: /src/ndpi/example/ndpiReader.c:6590,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6591,1
    - Dst: ndpi_load_categories_file
      Src: /src/ndpi/example/ndpiReader.c:6591,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6593,1
    - Dst: ndpi_get_custom_category_match
      Src: /src/ndpi/example/ndpiReader.c:6593,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6593,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6593,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6594,1
    - Dst: ndpi_get_custom_category_match
      Src: /src/ndpi/example/ndpiReader.c:6594,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6594,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6594,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6595,1
    - Dst: ndpi_get_custom_category_match
      Src: /src/ndpi/example/ndpiReader.c:6595,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6595,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6595,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6596,1
    - Dst: ndpi_get_custom_category_match
      Src: /src/ndpi/example/ndpiReader.c:6596,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6596,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6596,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6597,1
    - Dst: ndpi_get_custom_category_match
      Src: /src/ndpi/example/ndpiReader.c:6597,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6597,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6597,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6598,1
    - Dst: ndpi_get_custom_category_match
      Src: /src/ndpi/example/ndpiReader.c:6598,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6598,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6598,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6599,1
    - Dst: ndpi_get_custom_category_match
      Src: /src/ndpi/example/ndpiReader.c:6599,1
    - Dst: strlen
      Src: /src/ndpi/example/ndpiReader.c:6599,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6599,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6603
      start: 6570
    functionDepth: 4
    functionLinenumber: 6570
    functionLinenumberEnd: 6603
    functionName: encodeDomainsUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - stat
    - ndpi_load_domain_suffixes
    - ndpi_get_custom_category_match
    - ndpi_load_categories_file
    - ndpi_get_host_domain_suffix
    - ndpi_init_detection_module
    - assert
    - ndpi_encode_domain
    - ndpi_load_categories_dir
    - ndpi_exit_detection_module
    - strlen
    linkageType: ''
    returnType: void
    signature: void encodeDomainsUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6608,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6611,1
    - Dst: ndpi_load_protocols_dir
      Src: /src/ndpi/example/ndpiReader.c:6611,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6615
      start: 6607
    functionDepth: 6
    functionLinenumber: 6607
    functionLinenumberEnd: 6615
    functionName: checkProtocolIDsUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_exit_detection_module
    - assert
    - ndpi_init_detection_module
    - ndpi_load_protocols_dir
    linkageType: ''
    returnType: void
    signature: void checkProtocolIDsUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6620,1
    - Dst: stat
      Src: /src/ndpi/example/ndpiReader.c:6624,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6627,1
    - Dst: ndpi_load_domain_suffixes
      Src: /src/ndpi/example/ndpiReader.c:6627,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6629,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6629,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6629,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6630,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6630,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6630,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6631,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6631,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6631,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6632,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6632,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6632,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6633,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6633,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6633,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6635,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6635,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/example/ndpiReader.c:6635,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6636,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6636,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/example/ndpiReader.c:6636,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6637,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6637,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/example/ndpiReader.c:6637,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6638,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6638,1
    - Dst: ndpi_get_host_domain_suffix
      Src: /src/ndpi/example/ndpiReader.c:6638,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6640,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6640,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6640,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6641,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6641,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6641,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6642,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6642,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6642,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6643,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6643,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6643,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6644,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6644,1
    - Dst: ndpi_get_host_domain
      Src: /src/ndpi/example/ndpiReader.c:6644,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6648
      start: 6619
    functionDepth: 3
    functionLinenumber: 6619
    functionLinenumberEnd: 6648
    functionName: domainsUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - stat
    - ndpi_load_domain_suffixes
    - ndpi_get_host_domain_suffix
    - ndpi_init_detection_module
    - ndpi_get_host_domain
    - assert
    - strcmp
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: void
    signature: void domainsUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_domain_classify_alloc
      Src: /src/ndpi/example/ndpiReader.c:6653,1
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6656,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6659,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6660,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:6662,1
    - Dst: ndpi_domain_classify_add
      Src: /src/ndpi/example/ndpiReader.c:6664,1
    - Dst: ndpi_domain_classify_add
      Src: /src/ndpi/example/ndpiReader.c:6665,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6666,1
    - Dst: ndpi_domain_classify_hostname
      Src: /src/ndpi/example/ndpiReader.c:6666,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6667,1
    - Dst: ndpi_domain_classify_add
      Src: /src/ndpi/example/ndpiReader.c:6669,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6670,1
    - Dst: ndpi_domain_classify_hostname
      Src: /src/ndpi/example/ndpiReader.c:6670,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6671,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6674,1
    - Dst: ndpi_domain_classify_hostname
      Src: /src/ndpi/example/ndpiReader.c:6674,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6675,1
    - Dst: ndpi_domain_classify_size
      Src: /src/ndpi/example/ndpiReader.c:6677,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6678,1
    - Dst: ndpi_domain_classify_free
      Src: /src/ndpi/example/ndpiReader.c:6681,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6683
      start: 6652
    functionDepth: 4
    functionLinenumber: 6652
    functionLinenumberEnd: 6683
    functionName: domainSearchUnitTest
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_domain_classify_size
    - printf
    - ndpi_domain_classify_add
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_domain_classify_hostname
    - ndpi_domain_classify_alloc
    - ndpi_domain_classify_free
    - assert
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: void
    signature: void domainSearchUnitTest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6688,1
    - Dst: ndpi_domain_classify_alloc
      Src: /src/ndpi/example/ndpiReader.c:6689,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6692,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6693,1
    - Dst: ndpi_finalize_initialization
      Src: /src/ndpi/example/ndpiReader.c:6695,1
    - Dst: ndpi_domain_classify_add
      Src: /src/ndpi/example/ndpiReader.c:6697,1
    - Dst: ndpi_domain_classify_add
      Src: /src/ndpi/example/ndpiReader.c:6698,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6700,1
    - Dst: ndpi_domain_classify_hostname
      Src: /src/ndpi/example/ndpiReader.c:6700,1
    - Dst: ndpi_domain_classify_free
      Src: /src/ndpi/example/ndpiReader.c:6702,1
    - Dst: ndpi_exit_detection_module
      Src: /src/ndpi/example/ndpiReader.c:6703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6704
      start: 6687
    functionDepth: 4
    functionLinenumber: 6687
    functionLinenumberEnd: 6704
    functionName: domainSearchUnitTest2
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_domain_classify_add
    - ndpi_init_detection_module
    - ndpi_finalize_initialization
    - ndpi_domain_classify_hostname
    - ndpi_domain_classify_alloc
    - ndpi_domain_classify_free
    - assert
    - ndpi_exit_detection_module
    linkageType: ''
    returnType: void
    signature: void domainSearchUnitTest2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ndpi_init_address_cache
      Src: /src/ndpi/example/ndpiReader.c:6709,1
    - Dst: time
      Src: /src/ndpi/example/ndpiReader.c:6711,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6715,1
    - Dst: snprintf
      Src: /src/ndpi/example/ndpiReader.c:6719,1
    - Dst: getpid
      Src: /src/ndpi/example/ndpiReader.c:6719,1
    - Dst: memset
      Src: /src/ndpi/example/ndpiReader.c:6721,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6723,1
    - Dst: ndpi_address_cache_insert
      Src: /src/ndpi/example/ndpiReader.c:6723,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6726,1
    - Dst: ndpi_address_cache_insert
      Src: /src/ndpi/example/ndpiReader.c:6726,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6728,1
    - Dst: ndpi_address_cache_find
      Src: /src/ndpi/example/ndpiReader.c:6728,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6729,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6729,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6730,1
    - Dst: ndpi_address_cache_find
      Src: /src/ndpi/example/ndpiReader.c:6730,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6732,1
    - Dst: ndpi_address_cache_dump
      Src: /src/ndpi/example/ndpiReader.c:6732,1
    - Dst: ndpi_term_address_cache
      Src: /src/ndpi/example/ndpiReader.c:6733,1
    - Dst: ndpi_init_address_cache
      Src: /src/ndpi/example/ndpiReader.c:6735,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6736,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6737,1
    - Dst: ndpi_address_cache_restore
      Src: /src/ndpi/example/ndpiReader.c:6737,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6740,1
    - Dst: ndpi_address_cache_find
      Src: /src/ndpi/example/ndpiReader.c:6740,1
    - Dst: assert
      Src: /src/ndpi/example/ndpiReader.c:6741,1
    - Dst: strcmp
      Src: /src/ndpi/example/ndpiReader.c:6741,1
    - Dst: ndpi_term_address_cache
      Src: /src/ndpi/example/ndpiReader.c:6743,1
    - Dst: unlink
      Src: /src/ndpi/example/ndpiReader.c:6744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 6745
      start: 6708
    functionDepth: 4
    functionLinenumber: 6708
    functionLinenumberEnd: 6745
    functionName: domainCacheTestUnit
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - ndpi_init_address_cache
    - memset
    - unlink
    - ndpi_term_address_cache
    - ndpi_address_cache_insert
    - time
    - assert
    - strcmp
    - getpid
    - ndpi_address_cache_restore
    - snprintf
    - ndpi_address_cache_dump
    - ndpi_address_cache_find
    linkageType: ''
    returnType: void
    signature: void domainCacheTestUnit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/ndpi/example/ndpiReader.c:6764,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:6769,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:6770,1
    - Dst: fprintf
      Src: /src/ndpi/example/ndpiReader.c:6773,1
    - Dst: ndpi_get_api_version
      Src: /src/ndpi/example/ndpiReader.c:6777,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6778,1
    - Dst: hwUnitTest2
      Src: /src/ndpi/example/ndpiReader.c:6787,1
    - Dst: desUnitStressTest
      Src: /src/ndpi/example/ndpiReader.c:6791,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:6792,1
    - Dst: domainCacheTestUnit
      Src: /src/ndpi/example/ndpiReader.c:6795,1
    - Dst: cryptDecryptUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6796,1
    - Dst: kdUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6797,1
    - Dst: encodeDomainsUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6798,1
    - Dst: loadStressTest
      Src: /src/ndpi/example/ndpiReader.c:6799,1
    - Dst: domainsUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6800,1
    - Dst: outlierUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6801,1
    - Dst: pearsonUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6802,1
    - Dst: binaryBitmapUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6803,1
    - Dst: domainSearchUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6804,1
    - Dst: domainSearchUnitTest2
      Src: /src/ndpi/example/ndpiReader.c:6805,1
    - Dst: sketchUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6806,1
    - Dst: linearUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6807,1
    - Dst: zscoreUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6808,1
    - Dst: sesUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6809,1
    - Dst: desUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6810,1
    - Dst: jitterUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6815,1
    - Dst: rsiUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6816,1
    - Dst: hashUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6817,1
    - Dst: dgaUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6818,1
    - Dst: hllUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6819,1
    - Dst: bitmapUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6820,1
    - Dst: filterUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6821,1
    - Dst: automataUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6822,1
    - Dst: automataDomainsUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6823,1
    - Dst: analyzeUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6824,1
    - Dst: analysisUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6825,1
    - Dst: compressedBitmapUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6826,1
    - Dst: strtonumUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6827,1
    - Dst: strlcpyUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6828,1
    - Dst: strnstrUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6829,1
    - Dst: strncasestrUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6830,1
    - Dst: memmemUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6831,1
    - Dst: memcasecmpUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6832,1
    - Dst: mahalanobisUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6833,1
    - Dst: bitmaskUnitTest
      Src: /src/ndpi/example/ndpiReader.c:6834,1
    - Dst: gettimeofday
      Src: /src/ndpi/example/ndpiReader.c:6838,1
    - Dst: memset
      Src: /src/ndpi/example/ndpiReader.c:6839,1
    - Dst: getenv
      Src: /src/ndpi/example/ndpiReader.c:6841,1
    - Dst: ac_automata_enable_debug
      Src: /src/ndpi/example/ndpiReader.c:6842,1
    - Dst: parseOptions
      Src: /src/ndpi/example/ndpiReader.c:6844,1
    - Dst: ndpiCheckHostStringMatch
      Src: /src/ndpi/example/ndpiReader.c:6847,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:6848,1
    - Dst: ndpiCheckIPMatch
      Src: /src/ndpi/example/ndpiReader.c:6852,1
    - Dst: exit
      Src: /src/ndpi/example/ndpiReader.c:6853,1
    - Dst: init_doh_bins
      Src: /src/ndpi/example/ndpiReader.c:6857,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6869,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6876,1
    - Dst: ndpi_revision
      Src: /src/ndpi/example/ndpiReader.c:6876,1
    - Dst: printf
      Src: /src/ndpi/example/ndpiReader.c:6880,1
    - Dst: signal
      Src: /src/ndpi/example/ndpiReader.c:6883,1
    - Dst: test_lib
      Src: /src/ndpi/example/ndpiReader.c:6886,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:6888,1
    - Dst: fclose
      Src: /src/ndpi/example/ndpiReader.c:6889,1
    - Dst: pcap_dump_close
      Src: /src/ndpi/example/ndpiReader.c:6890,1
    - Dst: pcap_close
      Src: /src/ndpi/example/ndpiReader.c:6891,1
    - Dst: ndpi_free_bin
      Src: /src/ndpi/example/ndpiReader.c:6892,1
    - Dst: fclose
      Src: /src/ndpi/example/ndpiReader.c:6893,1
    - Dst: fclose
      Src: /src/ndpi/example/ndpiReader.c:6894,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:6896,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:6899,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:6900,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:6901,1
    - Dst: ndpi_free
      Src: /src/ndpi/example/ndpiReader.c:6905,1
    - Dst: fclose
      Src: /src/ndpi/example/ndpiReader.c:6912,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 105
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    constantsTouched: []
    func_position:
      end: 6916
      start: 6752
    functionDepth: 13
    functionLinenumber: 6752
    functionLinenumberEnd: 6916
    functionName: main
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 11
    functionsReached:
    - memset
    - bitmaskUnitTest
    - fprintf
    - analysisUnitTest
    - test_lib
    - kdUnitTest
    - ndpi_free
    - domainSearchUnitTest2
    - zscoreUnitTest
    - pcap_dump_close
    - domainsUnitTest
    - ndpiCheckHostStringMatch
    - exit
    - filterUnitTest
    - sesUnitTest
    - linearUnitTest
    - strncasestrUnitTest
    - pearsonUnitTest
    - outlierUnitTest
    - domainCacheTestUnit
    - ndpi_get_api_version
    - hllUnitTest
    - init_doh_bins
    - analyzeUnitTest
    - domainSearchUnitTest
    - parseOptions
    - pcap_close
    - getenv
    - dgaUnitTest
    - automataUnitTest
    - ac_automata_enable_debug
    - bitmapUnitTest
    - sketchUnitTest
    - desUnitTest
    - fopen
    - cryptDecryptUnitTest
    - binaryBitmapUnitTest
    - memcasecmpUnitTest
    - hwUnitTest2
    - compressedBitmapUnitTest
    - ndpi_revision
    - ndpiCheckIPMatch
    - strlcpyUnitTest
    - strnstrUnitTest
    - desUnitStressTest
    - memmemUnitTest
    - rsiUnitTest
    - printf
    - fclose
    - mahalanobisUnitTest
    - jitterUnitTest
    - signal
    - hashUnitTest
    - strtonumUnitTest
    - ndpi_free_bin
    - automataDomainsUnitTest
    - gettimeofday
    - loadStressTest
    - encodeDomainsUnitTest
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AttachConsole
      Src: /src/ndpi/example/ndpiReader.c:6921,1
    - Dst: freopen
      Src: /src/ndpi/example/ndpiReader.c:6922,1
    - Dst: freopen
      Src: /src/ndpi/example/ndpiReader.c:6923,1
    - Dst: freopen
      Src: /src/ndpi/example/ndpiReader.c:6924,1
    - Dst: main
      Src: /src/ndpi/example/ndpiReader.c:6927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - hInstance
    - hPrevInstance
    - lpCmdLine
    - nShowCmd
    argTypes:
    - HINSTANCE
    - HINSTANCE
    - LPSTR
    - int
    constantsTouched: []
    func_position:
      end: 6928
      start: 6919
    functionDepth: 0
    functionLinenumber: 6919
    functionLinenumberEnd: 6928
    functionName: WinMain
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 0
    functionsReached:
    - AttachConsole
    - main
    - freopen
    linkageType: ''
    returnType: int
    signature: int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,
      int nShowCmd)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/ndpi/example/ndpiReader.c:6958,1
    - Dst: _tzset
      Src: /src/ndpi/example/ndpiReader.c:6970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - tv
    - tz
    argTypes:
    - struct timeval*
    - struct timezone*
    constantsTouched: []
    func_position:
      end: 6979
      start: 6951
    functionDepth: 0
    functionLinenumber: 6951
    functionLinenumberEnd: 6979
    functionName: gettimeofday
    functionSourceFile: /src/ndpi/example/ndpiReader.c
    functionUses: 9
    functionsReached:
    - GetSystemTimeAsFileTime
    - _tzset
    linkageType: ''
    returnType: int
    signature: int gettimeofday(struct timeval *tv, struct timezone *tz)
Fuzzer filename: /src/ndpi/fuzz/fuzz_community_id.cpp
Fuzzing method: LLVMFuzzerTestOneInput
report: name
sources:
- function_names:
  - help
  - ndpi_dbg_fn
  - main
  source_file: /src/ndpi/tests/dga/dga_evaluate.c
- function_names:
  - timeval2usec
  - tdiff2sec
  - main
  source_file: /src/ndpi/tests/performance/patriciasearch.c
- function_names:
  - ndpi_strnstr
  - ndpi_strnstr_opt
  - ndpi_strnstr_opt2
  - random_string
  - measure_time
  - warm_up
  - average_without_extremes
  - main
  source_file: /src/ndpi/tests/performance/strnstr.cpp
- function_names:
  - ndpi_malloc
  - ndpi_calloc
  - ndpi_free
  - test_md
  - single_encryption1
  - single_encryption2
  - timeval2usec
  - tdiff2sec
  - main
  source_file: /src/ndpi/tests/performance/gcrypt.c
- function_names:
  - timeval2usec
  - tdiff2sec
  - main
  source_file: /src/ndpi/tests/performance/substringsearch.c
- function_names:
  - main
  source_file: /src/ndpi/tests/performance/geo.c
- function_names:
  - serializerUnitTest
  - serializeProtoUnitTest
  - main
  source_file: /src/ndpi/tests/unit/unit.c
- function_names:
  - help
  - main
  source_file: /src/ndpi/influxdb/metric_anomaly.c
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_includes_OpenBSD.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_patricia_typedefs.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_includes.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_encryption.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_replace_printf.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_api.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_classify.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_unix.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_protocol_ids.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_private.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_main.h
- function_names:
  - ndpi_chdlc
  - ndpi_slarp
  - ndpi_cdp
  - ndpi_ethhdr
  - ndpi_arphdr
  - ndpi_dhcphdr
  - ndpi_mdns_rsp_entry
  - ndpi_snap_extension
  - ndpi_llc_header_snap
  - ndpi_radiotap_header
  - ndpi_wifi_header
  - ndpi_mpls_header
  - ndpi_iphdr
  - ndpi_in6_addr
  - ndpi_ip6_hdrctl
  - ndpi_ipv6hdr
  - ndpi_tcphdr
  - ndpi_udphdr
  - ndpi_dns_packet_header
  - ndpi_icmphdr
  - ndpi_icmp6hdr
  - ndpi_vxlanhdr
  - ndpi_gre_basehdr
  - ndpi_binary_bitmap_entry
  source_file: /src/ndpi/src/include/ndpi_typedefs.h
- function_names: []
  source_file: /src/ndpi/src/include/ndpi_win32.h
- function_names:
  - ndpi_load_domain_suffixes
  - ndpi_get_host_domain_suffix
  - ndpi_get_host_domain
  source_file: /src/ndpi/src/lib/ndpi_domains.c
- function_names:
  - ndpi_lru_cache_init
  - ndpi_lru_free_cache
  - __lru_cache_lock
  - __lru_cache_unlock
  - ndpi_lru_find_cache
  - ndpi_lru_add_to_cache
  - ndpi_lru_get_stats
  - ndpi_get_lru_cache_stats
  - ndpi_init_address_cache
  - ndpi_free_addr_item
  - ndpi_term_address_cache
  - ndpi_address_cache_flush_expired
  - ndpi_address_cache_find
  - ndpi_address_cache_insert
  - ndpi_address_cache_dump
  - ndpi_address_cache_restore
  - ndpi_cache_address
  - ndpi_cache_address_find
  - ndpi_cache_address_dump
  - ndpi_cache_address_restore
  - ndpi_cache_address_flush_expired
  source_file: /src/ndpi/src/lib/ndpi_cache.c
- function_names:
  - ndpi_bitmap64_fuse_alloc
  - ndpi_bitmap64_fuse_entry_compare
  - ndpi_bitmap64_fuse_compress
  - ndpi_bitmap64_fuse_set
  - ndpi_bitmap64_fuse_isset
  - ndpi_bitmap64_fuse_free
  - ndpi_bitmap64_fuse_size
  source_file: /src/ndpi/src/lib/ndpi_bitmap64_fuse.c
- function_names:
  - ndpi_domain_classify_alloc
  - ndpi_domain_classify_free
  - ndpi_domain_classify_size
  - ndpi_domain_classify_add
  - ndpi_domain_classify_add_domains
  - ndpi_domain_classify_hostname
  source_file: /src/ndpi/src/lib/ndpi_domain_classify.c
- function_names:
  - ndpi_binary_bitmap_alloc
  - ndpi_binary_bitmap_set
  - ndpi_binary_bitmap_entry_compare
  - ndpi_binary_bitmap_compress
  - ndpi_binary_bitmap_isset
  - ndpi_binary_bitmap_free
  - ndpi_binary_bitmap_size
  - ndpi_binary_bitmap_cardinality
  source_file: /src/ndpi/src/lib/ndpi_binary_bitmap.c
- function_names:
  - flow_is_proto
  - ndpi_flow_malloc
  - ndpi_flow_free
  - ndpi_detection_get_sizeof_ndpi_flow_struct
  - ndpi_get_proto_by_id
  - dissector_bitmask_set
  - dissector_bitmask_is_set
  - ndpi_get_proto_by_name
  - ndpi_get_protocol_by_name
  - ndpi_add_user_proto_id_mapping
  - ndpi_map_user_proto_id_to_ndpi_id
  - ndpi_map_ndpi_id_to_user_proto_id
  - ndpi_build_default_ports_range
  - ndpi_build_default_ports
  - ndpi_set_proto_breed
  - ndpi_set_proto_category
  - is_flow_addr_informative
  - ndpi_is_subprotocol_informative
  - exclude_dissector
  - is_proto_enabled
  - ndpi_set_proto_subprotocols
  - ndpi_set_proto_defaults
  - default_ports_tree_node_t_cmp
  - addDefaultPort
  - ndpi_is_middle_string_char
  - ndpi_domain_level
  - string_to_automa
  - ndpi_add_host_url_subprotocol
  - ndpi_init_app_protocol
  - ndpi_init_protocol_match
  - self_check_host_match
  - ndpi_xgrams_init
  - init_string_based_protocols
  - validate_protocol_initialization
  - ndpi_init_protocol_defaults
  - ac_domain_match_handler
  - ndpi_patricia_get_maxbits
  - ndpi_patricia_get_stats
  - ndpi_get_patricia_stats
  - ndpi_fill_prefix_v4
  - ndpi_fill_prefix_v6
  - ndpi_fill_prefix_mac
  - ndpi_patricia_get_node_prefix
  - ndpi_patricia_get_node_bits
  - ndpi_patricia_set_node_data
  - ndpi_patricia_get_node_data
  - ndpi_patricia_set_node_u64
  - ndpi_patricia_get_node_u64
  - ndpi_is_public_ipv4
  - ndpi_network_ptree_match
  - ndpi_network_ptree6_match
  - ndpi_network_port_ptree_match
  - ndpi_network_port_ptree6_match
  - ndpi_network_risk_ptree_match
  - ndpi_network_risk_ptree_match6
  - add_to_ptree
  - ndpi_load_ptree_file
  - ndpi_load_ipv4_ptree
  - ndpi_init_ptree_ipv4
  - ndpi_init_ptree_ipv6
  - ndpi_add_host_ip_subprotocol
  - set_ndpi_flow_malloc
  - set_ndpi_flow_free
  - ndpi_debug_printf
  - set_ndpi_debug_function
  - free_ptree_data
  - ndpi_global_init
  - ndpi_global_deinit
  - ndpi_init_detection_module
  - ndpi_init_detection_module_ext
  - ndpi_add_domain_risk_exceptions
  - is_ip_list_enabled
  - is_monitoring_enabled
  - ndpi_finalize_initialization
  - ndpi_init_automa
  - ndpi_init_automa_domain
  - ndpi_add_string_value_to_automa
  - ndpi_add_string_to_automa
  - ndpi_free_automa
  - ndpi_finalize_automa
  - ndpi_automa_get_stats
  - ndpi_get_automa_stats
  - ndpi_match_string_common
  - ndpi_match_string
  - ndpi_match_string_protocol_id
  - ndpi_match_string_value
  - ndpi_match_custom_category
  - ndpi_get_custom_category_match
  - ndpi_exit_detection_module
  - ndpi_get_guessed_protocol_id
  - guess_protocol_id
  - ndpi_get_num_protocols
  - ndpi_get_num_internal_protocols
  - ndpi_is_custom_protocol
  - strsep
  - ndpi_add_ip_risk_mask
  - ndpi_add_host_risk_mask
  - ndpi_add_trusted_issuer_dn
  - ndpi_handle_rule
  - load_config_file_fd
  - ndpi_load_categories_file
  - load_categories_file_fd
  - ndpi_load_category_file
  - load_category_file_fd
  - load_protocol_id_file_fd
  - ndpi_load_protocol_id_file
  - ndpi_load_categories_dir
  - ndpi_load_protocols_dir
  - ndpi_load_risky_domain
  - ndpi_load_risk_domain_file
  - load_risk_domain_file_fd
  - ndpi_load_malicious_ja4_file
  - load_malicious_ja4_file_fd
  - ndpi_load_malicious_sha1_file
  - load_malicious_sha1_file_fd
  - ndpi_load_protocols_file
  - load_protocols_file_fd
  - register_dissector
  - ndpi_callback_init
  - ndpi_proto_cb_tcp_payload
  - ndpi_proto_cb_tcp_nopayload
  - ndpi_proto_cb_udp
  - ndpi_proto_cb_other
  - ndpi_enabled_callbacks_init
  - ndpi_handle_ipv6_extension_headers
  - iph_is_valid_and_not_fragmented
  - ndpi_detection_get_l4_internal
  - ndpi_free_flow_data
  - ndpi_init_packet
  - ndpi_is_multi_or_broadcast
  - fully_enc_heuristic
  - current_pkt_from_client_to_server
  - current_pkt_from_server_to_client
  - tcp_ack_padding
  - connection_tracking
  - check_ndpi_subprotocols
  - check_ndpi_detection_func
  - check_ndpi_other_flow_func
  - check_ndpi_udp_flow_func
  - check_ndpi_tcp_flow_func
  - ndpi_check_flow_func
  - ndpi_guess_host_protocol_id
  - make_msteams_key
  - ndpi_reconcile_msteams_udp
  - ndpi_reconcile_msteams_call_udp_port
  - ndpi_reconcile_msteams_call_udp
  - ndpi_reconcile_protocols
  - search_into_bittorrent_cache
  - ndpi_check_tcp_flags
  - ndpi_check_probing_attempt
  - is_unidir_traffic_exception
  - internal_giveup
  - ndpi_detection_giveup
  - process_extra_packet
  - ndpi_load_ip_category
  - ndpi_load_hostname_category
  - ndpi_load_category
  - ndpi_enable_loaded_categories
  - ndpi_find_ipv4_category_userdata
  - ndpi_find_ipv6_category_userdata
  - ndpi_fill_ip_protocol_category
  - ndpi_fill_ipv6_protocol_category
  - ndpi_fill_protocol_category
  - ndpi_reset_packet_line_info
  - ndpi_is_ntop_protocol
  - ndpi_search_shellscript
  - ndpi_search_elf
  - ndpi_search_portable_executable
  - ndpi_check_protocol_port_mismatch_exceptions
  - do_guess
  - fpc_update
  - fpc_check_eval
  - ndpi_expected_ports_str
  - ndpi_internal_detection_process_packet
  - ndpi_detection_process_packet
  - ndpi_bytestream_to_number
  - ndpi_bytestream_to_number64
  - ndpi_bytestream_dec_or_hex_to_number64
  - ndpi_bytestream_to_ipv4
  - parse_single_packet_line
  - ndpi_parse_packet_line_info
  - ndpi_parse_packet_line_info_any
  - ndpi_detection_get_l4
  - ndpi_set_detected_protocol_keeping_master
  - ndpi_set_detected_protocol
  - reset_detected_protocol
  - ndpi_get_flow_masterprotocol
  - ndpi_get_flow_appprotocol
  - ndpi_get_flow_category
  - ndpi_get_flow_ndpi_proto
  - ndpi_int_change_flow_protocol
  - ndpi_int_change_protocol
  - change_category
  - ndpi_is_ipv6
  - ndpi_get_ip_string
  - ndpi_parse_ip_string
  - ntohs_ndpi_bytestream_to_number
  - ndpi_is_proto
  - ndpi_is_proto_unknown
  - ndpi_is_proto_equals
  - ndpi_get_lower_proto
  - ndpi_get_upper_proto
  - ndpi_internal_guess_undetected_protocol
  - ndpi_guess_undetected_protocol_v4
  - ndpi_guess_undetected_protocol
  - ndpi_protocol2id
  - ndpi_protocol2name
  - ndpi_is_custom_category
  - ndpi_category_set_name
  - ndpi_confidence_get_name
  - ndpi_fpc_confidence_get_name
  - ndpi_category_get_name
  - category_depends_on_master
  - ndpi_get_proto_category
  - ndpi_get_proto_name
  - ndpi_get_proto_breed
  - ndpi_get_proto_breed_name
  - ndpi_get_breed_by_name
  - ndpi_get_protocol_id
  - ndpi_get_category_id
  - default_ports_string
  - ndpi_dump_protocols
  - ndpi_generate_options
  - ndpi_dump_risks_score
  - ndpi_strnstr
  - ndpi_strncasestr
  - ndpi_match_prefix
  - ndpi_match_string_subprotocol
  - ndpi_is_more_generic_protocol
  - ndpi_automa_match_string_subprotocol
  - ndpi_check_subprotocol_risk
  - ndpi_match_host_subprotocol
  - ndpi_match_hostname_protocol
  - ndpi_match_xgram
  - ndpi_match_bigram
  - ndpi_match_impossible_bigram
  - ndpi_match_trigram
  - ndpi_free_flow
  - ndpi_revision
  - ndpi_get_api_version
  - ndpi_get_gcrypt_version
  - ndpi_get_proto_defaults
  - ndpi_get_ndpi_detection_module_size
  - ndpi_get_current_time
  - ndpi_extra_dissection_possible
  - ndpi_get_l4_proto_name
  - ndpi_get_l4_proto_info
  - ndpi_ptree_create
  - ndpi_ptree_destroy
  - ndpi_ptree_insert
  - ndpi_ptree_match_addr
  - ndpi_md5
  - ndpi_sha256
  - enough
  - ends_with
  - ndpi_is_trigram_char
  - ndpi_is_vowel
  - ndpi_check_dga_name
  - ndpi_risk2severity
  - ndpi_hostname_sni_set
  - ndpi_user_agent_set
  - ndpi_seen_flow_beginning
  - ndpi_set_user_data
  - ndpi_get_user_data
  - __get_proto_id
  - __get_flowrisk_id
  - _set_param_enable_disable
  - _set_param_int
  - _get_param_int
  - _get_param_string
  - _set_param_filename
  - _set_param_filename_config
  - _get_param_protocol_enable_disable
  - _set_param_protocol_enable_disable
  - _get_param_flowrisk_enable_disable
  - _set_param_flowrisk_enable_disable
  - clbk_only_with_global_ctx
  - set_default_config
  - ndpi_set_config
  - ndpi_set_config_u64
  - ndpi_get_config
  - ndpi_dump_config
  - ndpi_memmem
  - ndpi_strlcpy
  - ndpi_memcasecmp
  source_file: /src/ndpi/src/lib/ndpi_main.c
- function_names:
  - ndpi_load_geoip
  - ndpi_free_geoip
  - ndpi_get_geoip_asn
  - ndpi_get_geoip_aso
  - ndpi_get_geoip_country_continent
  - ndpi_get_geoip_country_continent_city
  source_file: /src/ndpi/src/lib/ndpi_geoip.c
- function_names:
  - set_ndpi_malloc
  - set_ndpi_free
  - ndpi_get_tot_allocated_memory
  - ndpi_malloc
  - ndpi_calloc
  - ndpi_free
  - ndpi_realloc
  - ndpi_strdup
  source_file: /src/ndpi/src/lib/ndpi_memory.c
- function_names:
  - ndpi_murmur_hash
  - ndpi_quick_hash
  - ndpi_quick_hash64
  - ndpi_hash_string
  - ndpi_rev_hash_string
  - ndpi_hash_string_len
  - ndpi_quick_16_byte_hash
  source_file: /src/ndpi/src/lib/ndpi_hash.c
- function_names:
  - ndpi_merge_splt_arrays
  - ndpi_get_mc_rep_lens
  - ndpi_get_mc_rep_times
  - ndpi_classify
  - ndpi_update_params
  - ndpi_timer_eq
  - ndpi_timer_lt
  - ndpi_timer_sub
  - ndpi_timer_clear
  - ndpi_timeval_to_milliseconds
  - ndpi_timeval_to_microseconds
  - ndpi_log_timestamp
  source_file: /src/ndpi/src/lib/ndpi_classify.c
- function_names:
  - ndpi_init_data_analysis
  - ndpi_alloc_data_analysis
  - ndpi_alloc_data_analysis_from_series
  - ndpi_free_data_analysis
  - ndpi_reset_data_analysis
  - ndpi_data_add_value
  - ndpi_data_average
  - ndpi_data_last
  - ndpi_data_min
  - ndpi_data_max
  - ndpi_data_variance
  - ndpi_data_stddev
  - ndpi_data_mean
  - ndpi_data_jitter
  - ndpi_data_window_average
  - ndpi_data_window_variance
  - ndpi_data_window_stddev
  - ndpi_data_entropy
  - ndpi_data_print_window_values
  - ndpi_data_ratio
  - ndpi_data_ratio2str
  - ndpi_hll_init
  - ndpi_hll_destroy
  - ndpi_hll_reset
  - ndpi_hll_add
  - ndpi_hll_add_number
  - ndpi_hll_count
  - ndpi_init_bin
  - ndpi_free_bin
  - ndpi_clone_bin
  - ndpi_set_bin
  - ndpi_inc_bin
  - ndpi_get_bin_value
  - ndpi_reset_bin
  - ndpi_normalize_bin
  - ndpi_print_bin
  - ndpi_bin_similarity
  - ndpi_cluster_bins
  - ndpi_alloc_rsi
  - ndpi_free_rsi
  - ndpi_rsi_add_value
  - ndpi_rational_approximation
  - ndpi_normal_cdf_inverse
  - ndpi_avg_inline
  - ndpi_hw_init
  - ndpi_hw_free
  - ndpi_hw_add_value
  - ndpi_hw_reset
  - ndpi_jitter_init
  - ndpi_jitter_free
  - ndpi_jitter_add_value
  - ndpi_ses_init
  - ndpi_ses_add_value
  - ndpi_ses_reset
  - ndpi_ses_fitting
  - ndpi_des_init
  - ndpi_des_reset
  - ndpi_des_add_value
  - ndpi_des_fitting
  - ndpi_find_outliers
  - ndpi_is_outlier
  - ndpi_predict_linear
  - ndpi_pearson_correlation
  - __crc16
  - ndpi_crc16_ccit
  - ndpi_crc16_ccit_false
  - ndpi_crc16_xmodem
  - ndpi_crc16_x25
  - ndpi_crc32
  - ndpi_cm_sketch_init
  - ndpi_cm_sketch_add
  - ndpi_cm_sketch_count
  - ndpi_cm_sketch_destroy
  - ndpi_popcount_init
  - ndpi_popcount_count
  - ndpi_kd_create
  - ndpi_kd_free
  - ndpi_kd_clear
  - ndpi_kd_insert
  - ndpi_kd_nearest
  - ndpi_kd_num_results
  - ndpi_kd_result_get_item
  - ndpi_kd_result_free
  - ndpi_kd_distance
  - ndpi_btree_init
  - ndpi_btree_query
  - ndpi_free_knn
  - ndpi_free_btree
  - ndpi_mahalanobis_distance
  source_file: /src/ndpi/src/lib/ndpi_analyze.c
- function_names:
  - ndpi_check_punycode_string
  - ndpi_tsearch
  - ndpi_tdelete
  - ndpi_trecurse
  - ndpi_twalk
  - ndpi_tfind
  - ndpi_tdestroy_recurse
  - ndpi_tdestroy
  - ndpi_net_match
  - ndpi_ips_match
  - ndpi_is_safe_ssl_cipher
  - ndpi_cipher2str
  - ndpi_is_other_char
  - _ndpi_is_valid_char
  - _ndpi_is_valid_char_init
  - ndpi_is_valid_char
  - ndpi_find_non_eng_bigrams
  - ndpi_has_human_readeable_string
  - ndpi_get_flow_info_by_proto_id
  - ndpi_get_flow_info
  - ndpi_multimedia_flowtype2str
  - ndpi_ssl_version2str
  - ndpi_patchIPv6Address
  - ndpi_user_pwd_payload_copy
  - ndpi_base64_decode
  - ndpi_base64_encode
  - ndpi_serialize_risk
  - ndpi_serialize_risk_score
  - ndpi_serialize_confidence
  - ndpi_serialize_proto
  - ndpi_tls2json
  - print_ndpi_address_port
  - ndpi_dpi2json
  - ndpi_get_ip_proto_name
  - ndpi_flow2json
  - ndpi_tunnel2str
  - ishex
  - ndpi_url_decode
  - ndpi_is_sql_injection
  - ndpi_is_xss_injection
  - ndpi_compile_rce_regex
  - ndpi_is_rce_injection
  - ndpi_validate_url
  - ndpi_is_protocol_detected
  - ndpi_risk2str
  - ndpi_risk2code
  - ndpi_code2risk
  - ndpi_severity2str
  - ndpi_risk2score
  - ndpi_http_method2str
  - ndpi_http_str2method
  - ndpi_hash_init
  - ndpi_hash_free
  - ndpi_hash_find_entry
  - ndpi_hash_add_entry
  - ndpi_host_ip_risk_ptree_match
  - ndpi_host_ip_risk_ptree_match6
  - ndpi_check_issuerdn_risk_exception
  - ndpi_check_hostname_risk_exception
  - ndpi_check_ipv4_exception
  - ndpi_check_ipv6_exception
  - is_flowrisk_enabled
  - is_flowrisk_info_enabled
  - ndpi_handle_risk_exceptions
  - ndpi_set_risk
  - ndpi_unset_risk
  - ndpi_isset_risk
  - ndpi_is_printable_buffer
  - ndpi_normalize_printable_string
  - ndpi_is_valid_hostname
  - ndpi_entropy
  - ndpi_entropy2str
  - ndpi_entropy2risk
  - get_n16bit
  - icmp4_checksum
  - ndpi_get_flow_name
  - load_common_alpns
  - is_a_common_alpn
  - ndpi_is_valid_protoId
  - ndpi_is_encrypted_proto
  - ndpi_get_flow_error_code
  - ndpi_vsnprintf
  - ndpi_gmtime_r
  - ndpi_snprintf
  - risk_infos_pair_cmp
  - ndpi_get_flow_risk_info
  - ndpi_check_flow_risk_exceptions
  - asn1_ber_decode_length
  - ndpi_intoav4
  - ndpi_intoav6
  - ndpi_nearest_power_of_two
  - tpkt_verify_hdr
  - ndpi_strtonum
  - ndpi_strrstr
  - ndpi_str_endswith
  - ndpi_lru_cache_idx_to_name
  - ndpi_compress_str
  - ndpi_decompress_str
  - ndpi_domain_mapper_init
  - ndpi_encode_domain
  - is_ndpi_proto
  - ndpi_serialize_flow_fingerprint
  - ndpi_hex2bin
  - ndpi_bin2hex
  - ndpi_quick_encrypt
  - ndpi_quick_decrypt
  - ndpi_print_os_hint
  - ndpi_strndup
  - ndpi_strip_leading_trailing_spaces
  - ndpi_find_protocol_qoe
  - ndpi_rtp_payload_type2str
  - ndpi_str_to_utf8
  - ndpi_is_master_only_protocol
  - ndpi_normalize_protocol
  - ndpi_bitmask_alloc
  - ndpi_bitmask_free
  - ndpi_bitmask_set
  - ndpi_bitmask_clear
  - ndpi_bitmask_is_set
  - ndpi_bitmask_set_all
  - ndpi_bitmask_reset
  - ndpi_bitmask_clone
  source_file: /src/ndpi/src/lib/ndpi_utils.c
- function_names:
  - ndpi_htonll
  - ndpi_ntohll
  - ndpi_is_number
  - ndpi_json_string_escape
  - ndpi_reset_serializer
  - ndpi_serializer_skip_header
  - ndpi_init_serializer_buffer
  - ndpi_init_serializer_ll
  - ndpi_init_serializer
  - ndpi_extend_serializer_buffer
  - ndpi_serializer_check_header_room
  - ndpi_serializer_header_uint32
  - ndpi_serializer_header_string
  - ndpi_serializer_get_buffer
  - ndpi_serializer_get_buffer_len
  - ndpi_serializer_get_internal_buffer_size
  - ndpi_serializer_set_buffer_len
  - ndpi_serializer_get_header
  - ndpi_serializer_get_format
  - ndpi_serializer_set_csv_separator
  - ndpi_term_serializer
  - ndpi_serialize_single_uint8
  - ndpi_serialize_single_uint16
  - ndpi_serialize_single_uint32
  - ndpi_serialize_single_uint64
  - ndpi_serialize_single_float
  - ndpi_serialize_single_double
  - ndpi_serialize_single_string
  - ndpi_deserialize_single_uint8
  - ndpi_deserialize_single_uint16
  - ndpi_deserialize_single_uint32
  - ndpi_deserialize_single_int8
  - ndpi_deserialize_single_int16
  - ndpi_deserialize_single_int32
  - ndpi_deserialize_single_uint64
  - ndpi_deserialize_single_int64
  - ndpi_deserialize_single_float
  - ndpi_deserialize_single_double
  - ndpi_deserialize_single_string
  - ndpi_serialize_raw_record
  - ndpi_serialize_end_of_record
  - ndpi_serialize_csv_pre
  - ndpi_serialize_json_pre
  - ndpi_serialize_json_post
  - ndpi_serialize_key_uint32
  - ndpi_serialize_uint32_uint32
  - ndpi_serialize_uint32_uint64
  - ndpi_serialize_uint32_int32
  - ndpi_serialize_uint32_int64
  - ndpi_serialize_uint32_float
  - ndpi_serialize_uint32_double
  - ndpi_serialize_uint32_binary
  - ndpi_serialize_uint32_string
  - ndpi_serialize_uint32_boolean
  - ndpi_serialize_binary_int32
  - ndpi_serialize_string_int32
  - ndpi_serialize_binary_int64
  - ndpi_serialize_string_int64
  - ndpi_serialize_binary_uint32
  - ndpi_serialize_string_uint32
  - ndpi_serialize_string_uint32_format
  - ndpi_serialize_binary_uint64
  - ndpi_serialize_string_uint64
  - ndpi_serialize_binary_float
  - ndpi_serialize_binary_double
  - ndpi_serialize_string_float
  - ndpi_serialize_string_double
  - ndpi_serialize_binary_raw
  - ndpi_serialize_binary_binary
  - ndpi_serialize_string_binary
  - ndpi_serialize_string_string_len
  - ndpi_serialize_string_string
  - ndpi_serialize_string_raw
  - ndpi_serialize_binary_boolean
  - ndpi_serialize_string_boolean
  - ndpi_serialize_start_of_list_binary
  - ndpi_serialize_start_of_list
  - ndpi_serialize_end_of_list
  - ndpi_serialize_start_of_block_binary
  - ndpi_serialize_start_of_block
  - ndpi_serialize_start_of_block_uint32
  - ndpi_serialize_end_of_block
  - ndpi_serializer_create_snapshot
  - ndpi_serializer_rollback_snapshot
  - ndpi_init_deserializer_buf
  - ndpi_init_deserializer
  - ndpi_deserialize_get_format
  - ndpi_deserialize_get_key_subtype
  - ndpi_deserialize_get_value_subtype
  - ndpi_deserialize_get_item_type
  - ndpi_deserialize_get_single_string_size
  - ndpi_deserialize_get_single_size
  - ndpi_deserialize_next
  - ndpi_deserialize_key_uint32
  - ndpi_deserialize_key_string
  - ndpi_deserialize_value_uint32
  - ndpi_deserialize_value_uint64
  - ndpi_deserialize_value_int32
  - ndpi_deserialize_value_int64
  - ndpi_deserialize_value_float
  - ndpi_deserialize_value_double
  - ndpi_deserialize_value_string
  - ndpi_deserialize_clone_item
  - ndpi_deserialize_clone_all
  source_file: /src/ndpi/src/lib/ndpi_serializer.c
- function_names:
  - ndpi_community_id_buf_copy
  - ndpi_community_id_icmp_type_to_code_v4
  - ndpi_community_id_icmp_type_to_code_v6
  - ndpi_community_id_peer_v4_is_less_than
  - ndpi_community_id_peer_v6_is_less_than
  - ndpi_string_sha1_hash
  - ndpi_community_id_finalize_and_compute_hash
  - ndpi_flowv4_flow_hash
  - ndpi_flowv6_flow_hash
  source_file: /src/ndpi/src/lib/ndpi_community_id.c
- function_names:
  - ndpi_filter_alloc
  - ndpi_filter_add
  - ndpi_filter_add_string
  - ndpi_filter_contains
  - ndpi_filter_contains_string
  - ndpi_filter_free
  - ndpi_filter_size
  - ndpi_filter_cardinality
  source_file: /src/ndpi/src/lib/ndpi_filter.c
- function_names:
  - ndpi_load_tcp_fingerprints
  - ndpi_get_os_from_tcp_fingerprint
  - ndpi_add_tcp_fingerprint
  - ndpi_load_tcp_fingerprint_file
  - load_tcp_fingerprint_file_fd
  source_file: /src/ndpi/src/lib/ndpi_fingerprint.c
- function_names:
  - ndpi_bitmap_alloc
  - ndpi_bitmap_free
  - ndpi_bitmap_copy
  - ndpi_bitmap_cardinality
  - ndpi_bitmap_set
  - ndpi_bitmap_unset
  - ndpi_bitmap_isset
  - ndpi_bitmap_serialize
  - ndpi_bitmap_deserialize
  - ndpi_bitmap_and
  - ndpi_bitmap_and_alloc
  - ndpi_bitmap_andnot
  - ndpi_bitmap_or
  - ndpi_bitmap_or_alloc
  - ndpi_bitmap_xor
  - ndpi_bitmap_optimize
  - ndpi_bitmap_iterator_alloc
  - ndpi_bitmap_iterator_free
  - ndpi_bitmap_is_empty
  - ndpi_bitmap_iterator_next
  source_file: /src/ndpi/src/lib/ndpi_bitmap.c
- function_names:
  - ndpi_DeleteEntry
  - ndpi_prefix_tochar
  - ndpi_comp_with_mask
  - ndpi_my_inet_pton
  - THREAD_SPECIFIC_DATA
  - ndpi_prefix_toa2
  - ndpi_prefix_toa
  - ndpi_New_Prefix2
  - ndpi_New_Prefix
  - ndpi_Ref_Prefix
  - ndpi_Deref_Prefix
  - ndpi_patricia_new
  - ndpi_Clear_Patricia
  - ndpi_patricia_destroy
  - ndpi_patricia_process
  - ndpi_patricia_clone_walk
  - ndpi_patricia_clone
  - ndpi_patricia_walk_inorder
  - ndpi_patricia_walk_tree_inorder
  - ndpi_patricia_search_exact
  - ndpi_patricia_search_best2
  - ndpi_patricia_search_best
  - ndpi_patricia_lookup
  - ndpi_patricia_remove
  - ndpi_ascii2prefix
  - ndpi_make_and_lookup
  - ndpi_try_search_exact
  - ndpi_lookup_then_remove
  source_file: /src/ndpi/src/lib/third_party/src/ndpi_patricia.c
- function_names:
  - __builtin_ctzll
  - __builtin_clzll
  - hammingbackup
  - hamming
  - cpuid
  - dynamic_croaring_detect_supported_architectures
  - croaring_detect_supported_architectures
  - croaring_detect_supported_architectures
  - croaring_detect_supported_architectures
  - croaring_detect_supported_architectures
  - croaring_avx2
  - croaring_avx2
  - croaring_avx2
  - roaring::internal::movable_CAST_HELPER
  - roaring::internal::binarySearch
  - roaring::internal::advanceUntil
  - roaring::internal::count_less
  - roaring::internal::count_greater
  - roaring::internal::bitset_set_range
  - roaring::internal::bitset_lenrange_cardinality
  - roaring::internal::bitset_lenrange_empty
  - roaring::internal::bitset_set_lenrange
  - roaring::internal::bitset_flip_range
  - roaring::internal::bitset_reset_range
  - roaring::internal::popcount256
  - roaring::internal::CSA
  - roaring::internal::avx2_harley_seal_popcount256
  - roaring::internal::STRUCT_CONTAINER
  - roaring::internal::array_container_cardinality
  - roaring::internal::array_container_nonzero_cardinality
  - roaring::internal::array_container_empty
  - roaring::internal::array_container_full
  - roaring::internal::array_container_serialized_size_in_bytes
  - roaring::internal::array_container_size_in_bytes
  - roaring::internal::array_container_equals
  - roaring::internal::array_container_select
  - roaring::internal::array_container_append
  - roaring::internal::array_container_try_add
  - roaring::internal::array_container_add
  - roaring::internal::array_container_remove
  - roaring::internal::array_container_contains
  - roaring::internal::array_container_contains_range
  - roaring::internal::array_container_minimum
  - roaring::internal::array_container_maximum
  - roaring::internal::array_container_rank
  - roaring::internal::array_container_index_equalorlarger
  - roaring::internal::array_container_add_range_nvals
  - roaring::internal::array_container_remove_range
  - roaring::internal::STRUCT_CONTAINER
  - roaring::internal::bitset_container_set
  - roaring::internal::bitset_container_add
  - roaring::internal::bitset_container_remove
  - roaring::internal::bitset_container_get
  - roaring::internal::bitset_container_set
  - roaring::internal::bitset_container_add
  - roaring::internal::bitset_container_remove
  - roaring::internal::bitset_container_get
  - roaring::internal::bitset_container_get_range
  - roaring::internal::bitset_container_contains
  - roaring::internal::bitset_container_contains_range
  - roaring::internal::bitset_container_cardinality
  - roaring::internal::bitset_container_empty
  - roaring::internal::bitset_container_const_nonzero_cardinality
  - roaring::internal::bitset_container_serialized_size_in_bytes
  - roaring::internal::bitset_container_size_in_bytes
  - roaring::internal::STRUCT_CONTAINER
  - roaring::internal::recoverRoomAtIndex
  - roaring::internal::interleavedBinarySearch
  - roaring::internal::rle16_find_run
  - roaring::internal::rle16_count_less
  - roaring::internal::rle16_count_greater
  - roaring::internal::makeRoomAtIndex
  - roaring::internal::run_container_remove
  - roaring::internal::run_container_contains
  - roaring::internal::run_container_contains_range
  - roaring::internal::run_container_nonzero_cardinality
  - roaring::internal::run_container_empty
  - roaring::internal::run_container_append
  - roaring::internal::run_container_append_first
  - roaring::internal::run_container_append_value
  - roaring::internal::run_container_append_value_first
  - roaring::internal::run_container_is_full
  - roaring::internal::run_container_serialized_size_in_bytes
  - roaring::internal::run_container_size_in_bytes
  - roaring::internal::run_container_equals
  - roaring::internal::run_container_create_range
  - roaring::internal::run_container_minimum
  - roaring::internal::run_container_maximum
  - roaring::internal::run_container_index_equalorlarger
  - roaring::internal::run_container_add_range_nruns
  - roaring::internal::run_container_shift_tail
  - roaring::internal::run_container_remove_range
  - roaring::internal::STRUCT_CONTAINER
  - roaring::internal::container_unwrap_shared
  - roaring::internal::container_mutable_unwrap_shared
  - roaring::internal::get_container_type
  - roaring::internal::get_writable_copy_if_shared
  - roaring::internal::container_to_bitset
  - roaring::internal::get_full_container_name
  - roaring::internal::container_get_cardinality
  - roaring::internal::container_is_full
  - roaring::internal::container_shrink_to_fit
  - roaring::internal::container_range_of_ones
  - roaring::internal::container_from_range
  - roaring::internal::container_repair_after_lazy
  - roaring::internal::container_write
  - roaring::internal::container_size_in_bytes
  - roaring::internal::container_nonzero_cardinality
  - roaring::internal::container_to_uint32_array
  - roaring::internal::container_add
  - roaring::internal::container_remove
  - roaring::internal::container_contains
  - roaring::internal::container_contains_range
  - roaring::internal::container_equals
  - roaring::internal::container_is_subset
  - roaring::internal::container_and
  - roaring::internal::container_and_cardinality
  - roaring::internal::container_intersect
  - roaring::internal::container_iand
  - roaring::internal::container_or
  - roaring::internal::container_lazy_or
  - roaring::internal::container_ior
  - roaring::internal::container_lazy_ior
  - roaring::internal::container_xor
  - roaring::internal::container_add_offset
  - roaring::internal::container_lazy_xor
  - roaring::internal::container_ixor
  - roaring::internal::container_lazy_ixor
  - roaring::internal::container_andnot
  - roaring::internal::container_iandnot
  - roaring::internal::container_iterate
  - roaring::internal::container_iterate64
  - roaring::internal::container_not
  - roaring::internal::container_not_range
  - roaring::internal::container_inot
  - roaring::internal::container_inot_range
  - roaring::internal::container_select
  - roaring::internal::container_maximum
  - roaring::internal::container_minimum
  - roaring::internal::container_rank
  - roaring::internal::container_add_range
  - roaring::internal::container_remove_range
  - roaring::internal::ra_get_index
  - roaring::internal::ra_get_container_at_index
  - roaring::internal::ra_get_key_at_index
  - roaring::internal::ra_set_container_at_index
  - roaring::internal::ra_get_size
  - roaring::internal::ra_advance_until
  - roaring::internal::ra_replace_key_and_container_at_index
  - roaring::internal::ra_unshare_container_at_index
  - roaring::internal::intersect_vector16
  - roaring::internal::intersect_vector16_cardinality
  - roaring::internal::difference_vector16
  - roaring::internal::binarySearch4
  - roaring::internal::binarySearch2
  - roaring::internal::intersect_skewed_uint16
  - roaring::internal::intersect_skewed_uint16_cardinality
  - roaring::internal::intersect_skewed_uint16_nonempty
  - roaring::internal::intersect_uint16
  - roaring::internal::intersect_uint16_cardinality
  - roaring::internal::intersect_uint16_nonempty
  - roaring::internal::intersection_uint32
  - roaring::internal::intersection_uint32_card
  - roaring::internal::union_uint16
  - roaring::internal::difference_uint16
  - roaring::internal::xor_uint16
  - roaring::internal::sse_merge
  - roaring::internal::store_unique
  - roaring::internal::unique
  - roaring::internal::uint16_compare
  - roaring::internal::union_vector16
  - roaring::internal::store_unique_xor
  - roaring::internal::unique_xor
  - roaring::internal::xor_vector16
  - roaring::internal::union_uint32
  - roaring::internal::union_uint32_card
  - roaring::internal::fast_union_uint16
  - roaring::internal::_avx2_memequals
  - roaring::internal::memequals
  - roaring::internal::bitset_extract_setbits_avx2
  - roaring::internal::bitset_extract_setbits
  - roaring::internal::bitset_extract_intersection_setbits_uint16
  - roaring::internal::bitset_extract_setbits_sse_uint16
  - roaring::internal::bitset_extract_setbits_uint16
  - roaring::internal::_asm_bitset_set_list_withcard
  - roaring::internal::_asm_bitset_set_list
  - roaring::internal::_asm_bitset_clear_list
  - roaring::internal::_scalar_bitset_clear_list
  - roaring::internal::_scalar_bitset_set_list_withcard
  - roaring::internal::_scalar_bitset_set_list
  - roaring::internal::bitset_clear_list
  - roaring::internal::bitset_set_list_withcard
  - roaring::internal::bitset_set_list
  - roaring::internal::bitset_clear_list
  - roaring::internal::bitset_set_list_withcard
  - roaring::internal::bitset_set_list
  - roaring::internal::bitset_flip_list_withcard
  - roaring::internal::bitset_flip_list
  - roaring::internal::array_container_create_given_capacity
  - roaring::internal::array_container_create
  - roaring::internal::array_container_create_range
  - roaring::internal::array_container_clone
  - roaring::internal::array_container_offset
  - roaring::internal::array_container_shrink_to_fit
  - roaring::internal::array_container_free
  - roaring::internal::grow_capacity
  - roaring::internal::clamp
  - roaring::internal::array_container_grow
  - roaring::internal::array_container_copy
  - roaring::internal::array_container_add_from_range
  - roaring::internal::array_container_union
  - roaring::internal::array_container_andnot
  - roaring::internal::array_container_xor
  - roaring::internal::minimum_int32
  - roaring::internal::array_container_intersection
  - roaring::internal::array_container_intersection_cardinality
  - roaring::internal::array_container_intersect
  - roaring::internal::array_container_intersection_inplace
  - roaring::internal::array_container_to_uint32_array
  - roaring::internal::array_container_printf
  - roaring::internal::array_container_printf_as_uint32_array
  - roaring::internal::array_container_number_of_runs
  - roaring::internal::array_container_write
  - roaring::internal::array_container_is_subset
  - roaring::internal::array_container_read
  - roaring::internal::array_container_iterate
  - roaring::internal::array_container_iterate64
  - roaring::internal::bitset_container_clear
  - roaring::internal::bitset_container_set_all
  - roaring::internal::bitset_container_create
  - roaring::internal::bitset_container_copy
  - roaring::internal::bitset_container_add_from_range
  - roaring::internal::bitset_container_free
  - roaring::internal::bitset_container_clone
  - roaring::internal::bitset_container_offset
  - roaring::internal::bitset_container_set_range
  - roaring::internal::bitset_container_intersect
  - roaring::internal::_scalar_bitset_container_compute_cardinality
  - roaring::internal::bitset_container_compute_cardinality
  - roaring::internal::bitset_container_compute_cardinality
  - roaring::internal::bitset_container_compute_cardinality
  - roaring::internal::bitset_container_to_uint32_array
  - roaring::internal::bitset_container_printf
  - roaring::internal::bitset_container_printf_as_uint32_array
  - roaring::internal::bitset_container_number_of_runs
  - roaring::internal::bitset_container_write
  - roaring::internal::bitset_container_read
  - roaring::internal::bitset_container_iterate
  - roaring::internal::bitset_container_iterate64
  - roaring::internal::_avx2_bitset_container_equals
  - roaring::internal::bitset_container_equals
  - roaring::internal::bitset_container_is_subset
  - roaring::internal::bitset_container_select
  - roaring::internal::bitset_container_minimum
  - roaring::internal::bitset_container_maximum
  - roaring::internal::bitset_container_rank
  - roaring::internal::bitset_container_index_equalorlarger
  - roaring::internal::container_free
  - roaring::internal::container_printf
  - roaring::internal::container_printf_as_uint32_array
  - roaring::internal::get_copy_of_container
  - roaring::internal::container_clone
  - roaring::internal::shared_container_extract_copy
  - roaring::internal::shared_container_free
  - roaring::internal::bitset_container_from_array
  - roaring::internal::bitset_container_from_run
  - roaring::internal::array_container_from_run
  - roaring::internal::array_container_from_bitset
  - roaring::internal::add_run
  - roaring::internal::run_container_from_array
  - roaring::internal::convert_to_bitset_or_array_container
  - roaring::internal::convert_run_to_efficient_container
  - roaring::internal::convert_run_to_efficient_container_and_free
  - roaring::internal::convert_run_optimize
  - roaring::internal::container_from_run_range
  - roaring::internal::array_bitset_container_andnot
  - roaring::internal::array_bitset_container_iandnot
  - roaring::internal::bitset_array_container_andnot
  - roaring::internal::bitset_array_container_iandnot
  - roaring::internal::run_bitset_container_andnot
  - roaring::internal::run_bitset_container_iandnot
  - roaring::internal::bitset_run_container_andnot
  - roaring::internal::bitset_run_container_iandnot
  - roaring::internal::run_array_array_subtract
  - roaring::internal::run_array_container_andnot
  - roaring::internal::run_array_container_iandnot
  - roaring::internal::array_run_container_andnot
  - roaring::internal::array_run_container_iandnot
  - roaring::internal::run_run_container_andnot
  - roaring::internal::run_run_container_iandnot
  - roaring::internal::array_array_container_andnot
  - roaring::internal::array_array_container_iandnot
  - roaring::internal::bitset_bitset_container_andnot
  - roaring::internal::bitset_bitset_container_iandnot
  - roaring::internal::array_container_equal_bitset
  - roaring::internal::run_container_equals_array
  - roaring::internal::run_container_equals_bitset
  - roaring::internal::array_bitset_container_intersection
  - roaring::internal::array_bitset_container_intersection_cardinality
  - roaring::internal::array_bitset_container_intersect
  - roaring::internal::array_run_container_intersection
  - roaring::internal::run_bitset_container_intersection
  - roaring::internal::array_run_container_intersection_cardinality
  - roaring::internal::run_bitset_container_intersection_cardinality
  - roaring::internal::array_run_container_intersect
  - roaring::internal::run_bitset_container_intersect
  - roaring::internal::bitset_bitset_container_intersection
  - roaring::internal::bitset_bitset_container_intersection_inplace
  - roaring::internal::array_container_negation
  - roaring::internal::bitset_container_negation
  - roaring::internal::bitset_container_negation_inplace
  - roaring::internal::run_container_negation
  - roaring::internal::run_container_negation_inplace
  - roaring::internal::array_container_negation_range
  - roaring::internal::array_container_negation_range_inplace
  - roaring::internal::bitset_container_negation_range
  - roaring::internal::bitset_container_negation_range_inplace
  - roaring::internal::run_container_negation_range
  - roaring::internal::run_container_negation_range_inplace
  - roaring::internal::array_container_is_subset_bitset
  - roaring::internal::run_container_is_subset_array
  - roaring::internal::array_container_is_subset_run
  - roaring::internal::run_container_is_subset_bitset
  - roaring::internal::bitset_container_is_subset_run
  - roaring::internal::array_bitset_container_union
  - roaring::internal::array_bitset_container_lazy_union
  - roaring::internal::run_bitset_container_union
  - roaring::internal::run_bitset_container_lazy_union
  - roaring::internal::array_run_container_union
  - roaring::internal::array_run_container_inplace_union
  - roaring::internal::array_array_container_union
  - roaring::internal::array_array_container_inplace_union
  - roaring::internal::array_array_container_lazy_union
  - roaring::internal::array_array_container_lazy_inplace_union
  - roaring::internal::array_bitset_container_xor
  - roaring::internal::array_bitset_container_lazy_xor
  - roaring::internal::run_bitset_container_xor
  - roaring::internal::run_bitset_container_lazy_xor
  - roaring::internal::array_run_container_xor
  - roaring::internal::array_run_container_lazy_xor
  - roaring::internal::run_run_container_xor
  - roaring::internal::array_array_container_xor
  - roaring::internal::array_array_container_lazy_xor
  - roaring::internal::bitset_bitset_container_xor
  - roaring::internal::bitset_array_container_ixor
  - roaring::internal::bitset_bitset_container_ixor
  - roaring::internal::array_bitset_container_ixor
  - roaring::internal::run_bitset_container_ixor
  - roaring::internal::bitset_run_container_ixor
  - roaring::internal::array_run_container_ixor
  - roaring::internal::run_array_container_ixor
  - roaring::internal::array_array_container_ixor
  - roaring::internal::run_run_container_ixor
  - roaring::internal::run_container_add
  - roaring::internal::run_container_create_given_capacity
  - roaring::internal::run_container_shrink_to_fit
  - roaring::internal::run_container_create
  - roaring::internal::run_container_clone
  - roaring::internal::run_container_offset
  - roaring::internal::run_container_free
  - roaring::internal::run_container_grow
  - roaring::internal::run_container_copy
  - roaring::internal::run_container_union
  - roaring::internal::run_container_union_inplace
  - roaring::internal::run_container_xor
  - roaring::internal::run_container_intersection
  - roaring::internal::run_container_intersection_cardinality
  - roaring::internal::run_container_intersect
  - roaring::internal::run_container_andnot
  - roaring::internal::run_container_to_uint32_array
  - roaring::internal::run_container_printf
  - roaring::internal::run_container_printf_as_uint32_array
  - roaring::internal::run_container_write
  - roaring::internal::run_container_read
  - roaring::internal::run_container_iterate
  - roaring::internal::run_container_iterate64
  - roaring::internal::run_container_is_subset
  - roaring::internal::run_container_smart_append_exclusive
  - roaring::internal::run_container_select
  - roaring::internal::run_container_rank
  - roaring::internal::_avx2_run_container_cardinality
  - roaring::internal::_scalar_run_container_cardinality
  - roaring::internal::run_container_cardinality
  - roaring::internal::run_container_cardinality
  - roaring_bitmap_aligned_malloc
  - roaring_bitmap_aligned_free
  - roaring_init_memory_hook
  - roaring_malloc
  - roaring_realloc
  - roaring_calloc
  - roaring_free
  - roaring_aligned_malloc
  - roaring_aligned_free
  - roaring::api::is_cow
  - roaring::api::is_frozen
  - roaring::api::containerptr_roaring_bitmap_add
  - roaring::api::roaring_bitmap_create_with_capacity
  - roaring::api::roaring_bitmap_init_with_capacity
  - roaring::api::add_bulk_impl
  - roaring::api::roaring_bitmap_add_many
  - roaring::api::roaring_bitmap_add_bulk
  - roaring::api::roaring_bitmap_contains_bulk
  - roaring::api::roaring_bitmap_of_ptr
  - roaring::api::roaring_bitmap_of
  - roaring::api::minimum_uint32
  - roaring::api::minimum_uint64
  - roaring::api::roaring_bitmap_from_range
  - roaring::api::roaring_bitmap_add_range_closed
  - roaring::api::roaring_bitmap_remove_range_closed
  - roaring::api::roaring_bitmap_printf
  - roaring::api::roaring_bitmap_printf_describe
  - roaring::api::min_max_sum_fnc
  - roaring::api::roaring_bitmap_statistics
  - roaring::api::roaring_bitmap_copy
  - roaring::api::roaring_bitmap_overwrite
  - roaring::api::roaring_bitmap_free
  - roaring::api::roaring_bitmap_clear
  - roaring::api::roaring_bitmap_add
  - roaring::api::roaring_bitmap_add_checked
  - roaring::api::roaring_bitmap_remove
  - roaring::api::roaring_bitmap_remove_checked
  - roaring::api::roaring_bitmap_remove_many
  - roaring::api::roaring_bitmap_and
  - roaring::api::roaring_bitmap_or_many
  - roaring::api::roaring_bitmap_xor_many
  - roaring::api::roaring_bitmap_and_inplace
  - roaring::api::roaring_bitmap_or
  - roaring::api::roaring_bitmap_or_inplace
  - roaring::api::roaring_bitmap_xor
  - roaring::api::roaring_bitmap_xor_inplace
  - roaring::api::roaring_bitmap_andnot
  - roaring::api::roaring_bitmap_andnot_inplace
  - roaring::api::roaring_bitmap_get_cardinality
  - roaring::api::roaring_bitmap_range_cardinality
  - roaring::api::roaring_bitmap_is_empty
  - roaring::api::roaring_bitmap_to_uint32_array
  - roaring::api::roaring_bitmap_range_uint32_array
  - roaring::api::roaring_bitmap_run_optimize
  - roaring::api::roaring_bitmap_shrink_to_fit
  - roaring::api::roaring_bitmap_remove_run_compression
  - roaring::api::roaring_bitmap_serialize
  - roaring::api::roaring_bitmap_size_in_bytes
  - roaring::api::roaring_bitmap_portable_size_in_bytes
  - roaring::api::roaring_bitmap_portable_deserialize_safe
  - roaring::api::roaring_bitmap_portable_deserialize
  - roaring::api::roaring_bitmap_portable_deserialize_size
  - roaring::api::roaring_bitmap_portable_serialize
  - roaring::api::roaring_bitmap_deserialize
  - roaring::api::roaring_iterate
  - roaring::api::roaring_iterate64
  - roaring::api::iter_new_container_partial_init
  - roaring::api::loadfirstvalue
  - roaring::api::loadlastvalue
  - roaring::api::loadfirstvalue_largeorequal
  - roaring::api::roaring_init_iterator
  - roaring::api::roaring_init_iterator_last
  - roaring::api::roaring_create_iterator
  - roaring::api::roaring_copy_uint32_iterator
  - roaring::api::roaring_move_uint32_iterator_equalorlarger
  - roaring::api::roaring_advance_uint32_iterator
  - roaring::api::roaring_previous_uint32_iterator
  - roaring::api::roaring_read_uint32_iterator
  - roaring::api::roaring_free_uint32_iterator
  - roaring::api::roaring_bitmap_equals
  - roaring::api::roaring_bitmap_is_subset
  - roaring::api::insert_flipped_container
  - roaring::api::inplace_flip_container
  - roaring::api::insert_fully_flipped_container
  - roaring::api::inplace_fully_flip_container
  - roaring::api::roaring_bitmap_flip
  - roaring::api::roaring_bitmap_flip_inplace
  - roaring::api::offset_append_with_merge
  - roaring::api::roaring_bitmap_add_offset
  - roaring::api::roaring_bitmap_lazy_or
  - roaring::api::roaring_bitmap_lazy_or_inplace
  - roaring::api::roaring_bitmap_lazy_xor
  - roaring::api::roaring_bitmap_lazy_xor_inplace
  - roaring::api::roaring_bitmap_repair_after_lazy
  - roaring::api::roaring_bitmap_rank
  - roaring::api::roaring_bitmap_minimum
  - roaring::api::roaring_bitmap_maximum
  - roaring::api::roaring_bitmap_select
  - roaring::api::roaring_bitmap_intersect
  - roaring::api::roaring_bitmap_intersect_with_range
  - roaring::api::roaring_bitmap_and_cardinality
  - roaring::api::roaring_bitmap_jaccard_index
  - roaring::api::roaring_bitmap_or_cardinality
  - roaring::api::roaring_bitmap_andnot_cardinality
  - roaring::api::roaring_bitmap_xor_cardinality
  - roaring::api::roaring_bitmap_contains
  - roaring::api::roaring_bitmap_contains_range
  - roaring::api::roaring_bitmap_is_strict_subset
  - roaring::api::roaring_bitmap_frozen_size_in_bytes
  - roaring::api::arena_alloc
  - roaring::api::roaring_bitmap_frozen_serialize
  - roaring::api::roaring_bitmap_frozen_view
  - roaring_bitmap_t *roaring_bitmap_portable_deserialize_frozen(const char *buf)
  - roaring::internal::realloc_array
  - roaring::internal::ra_init_with_capacity
  - roaring::internal::ra_shrink_to_fit
  - roaring::internal::ra_init
  - roaring::internal::ra_overwrite
  - roaring::internal::ra_clear_containers
  - roaring::internal::ra_reset
  - roaring::internal::ra_clear_without_containers
  - roaring::internal::ra_clear
  - roaring::internal::extend_array
  - roaring::internal::ra_append
  - roaring::internal::ra_append_copy
  - roaring::internal::ra_append_copies_until
  - roaring::internal::ra_append_copy_range
  - roaring::internal::ra_append_copies_after
  - roaring::internal::ra_append_move_range
  - roaring::internal::ra_append_range
  - roaring::internal::ra_get_container
  - roaring::internal::ra_advance_until_freeing
  - roaring::internal::ra_insert_new_key_value_at
  - roaring::internal::ra_downsize
  - roaring::internal::ra_remove_at_index
  - roaring::internal::ra_remove_at_index_and_free
  - roaring::internal::ra_copy_range
  - roaring::internal::ra_shift_tail
  - roaring::internal::ra_to_uint32_array
  - roaring::internal::ra_range_uint32_array
  - roaring::internal::ra_has_run_container
  - roaring::internal::ra_portable_header_size
  - roaring::internal::ra_portable_size_in_bytes
  - roaring::internal::ra_portable_serialize
  - roaring::internal::ra_portable_deserialize_size
  - roaring::internal::ra_portable_deserialize
  - roaring::api::compare
  - roaring::api::pq_add
  - roaring::api::pq_free
  - roaring::api::percolate_down
  - roaring::api::create_pq
  - roaring::api::pq_poll
  - roaring::api::lazy_or_from_lazy_inputs
  - roaring::api::roaring_bitmap_or_many_heap
  source_file: /src/ndpi/src/lib/third_party/src/roaring_v2.c
- function_names:
  - libinjection_h5_init
  - libinjection_h5_next
  - h5_is_white
  - h5_skip_white
  - h5_state_eof
  - h5_state_data
  - h5_state_tag_open
  - h5_state_end_tag_open
  - h5_state_tag_name_close
  - h5_state_tag_name
  - h5_state_before_attribute_name
  - h5_state_attribute_name
  - h5_state_after_attribute_name
  - h5_state_before_attribute_value
  - h5_state_attribute_value_quote
  - h5_state_attribute_value_double_quote
  - h5_state_attribute_value_single_quote
  - h5_state_attribute_value_back_quote
  - h5_state_attribute_value_no_quote
  - h5_state_after_attribute_value_quoted_state
  - h5_state_self_closing_start_tag
  - h5_state_bogus_comment
  - h5_state_bogus_comment2
  - h5_state_markup_declaration_open
  - h5_state_comment
  - h5_state_cdata
  - h5_state_doctype
  source_file: /src/ndpi/src/lib/third_party/src/libinjection_html5.c
- function_names:
  - sha256_transform
  - ndpi_sha256_init
  - ndpi_sha256_update
  - ndpi_sha256_final
  source_file: /src/ndpi/src/lib/third_party/src/ndpi_sha256.c
- function_names:
  - edge_get_alpha
  - edge_data_size
  - acho_calloc
  - acho_malloc
  - acho_free
  - ac_automata_init
  - ac_automata_feature
  - ac_automata_name
  - ac_automata_enable_debug
  - ac_automata_add
  - ac_automata_walk
  - ac_finalize_node
  - ac_automata_finalize
  - ac_automata_exact_match
  - ac_automata_search
  - ac_automata_release_node
  - ac_automata_release
  - dump_node_header
  - dump_node_common
  - dump_node_str
  - ac_automata_dump
  - ac_automata_union_matchstrs
  - ac_automata_set_failure
  - ac_automata_traverse_setfailure
  - node_create
  - node_release_pattern
  - node_release
  - bsf
  - bsf
  - xmemchr
  - node_find_next
  - node_findbs_next
  - node_findbs_next_ac
  - node_has_matchstr
  - node_create_next
  - mp_data_size
  - node_resize_mp
  - node_register_matchstr
  - node_resize_outgoing
  - node_register_outgoing
  - node_edge_compare
  - node_edge_swap
  - acho_2range
  - node_range_edges
  - node_sort_edges
  - acho_sort
  - ac_automata_get_stats
  source_file: /src/ndpi/src/lib/third_party/src/ahocorasick.c
- function_names:
  - roaring::internal::movable_CAST_HELPER
  - roaring::internal::binarySearch
  - roaring::internal::advanceUntil
  - roaring::internal::count_less
  - roaring::internal::count_greater
  - roaring::internal::bitset_set_range
  - roaring::internal::bitset_lenrange_cardinality
  - roaring::internal::bitset_lenrange_empty
  - roaring::internal::bitset_set_lenrange
  - roaring::internal::bitset_flip_range
  - roaring::internal::bitset_reset_range
  - roaring::internal::popcount256
  - roaring::internal::CSA
  - roaring::internal::avx2_harley_seal_popcount256
  - roaring::internal::sum_epu64_256
  - roaring::internal::simd_sum_epu64
  - roaring::internal::avx512_vpopcount
  - roaring::internal::STRUCT_CONTAINER
  - roaring::internal::array_container_cardinality
  - roaring::internal::array_container_nonzero_cardinality
  - roaring::internal::array_container_empty
  - roaring::internal::array_container_full
  - roaring::internal::array_container_serialized_size_in_bytes
  - roaring::internal::array_container_size_in_bytes
  - roaring::internal::array_container_equals
  - roaring::internal::array_container_select
  - roaring::internal::array_container_append
  - roaring::internal::array_container_try_add
  - roaring::internal::array_container_add
  - roaring::internal::array_container_remove
  - roaring::internal::array_container_contains
  - roaring::internal::array_container_contains_range
  - roaring::internal::array_container_minimum
  - roaring::internal::array_container_maximum
  - roaring::internal::array_container_rank
  - roaring::internal::array_container_rank_many
  - roaring::internal::array_container_get_index
  - roaring::internal::array_container_index_equalorlarger
  - roaring::internal::array_container_add_range_nvals
  - roaring::internal::array_container_remove_range
  - roaring::internal::STRUCT_CONTAINER
  - roaring::internal::bitset_container_set
  - roaring::internal::bitset_container_add
  - roaring::internal::bitset_container_remove
  - roaring::internal::bitset_container_get
  - roaring::internal::bitset_container_set
  - roaring::internal::bitset_container_add
  - roaring::internal::bitset_container_remove
  - roaring::internal::bitset_container_get
  - roaring::internal::bitset_container_get_range
  - roaring::internal::bitset_container_contains
  - roaring::internal::bitset_container_contains_range
  - roaring::internal::bitset_container_cardinality
  - roaring::internal::bitset_container_empty
  - roaring::internal::bitset_container_const_nonzero_cardinality
  - roaring::internal::bitset_container_serialized_size_in_bytes
  - roaring::internal::bitset_container_size_in_bytes
  - roaring::internal::STRUCT_CONTAINER
  - roaring::internal::recoverRoomAtIndex
  - roaring::internal::interleavedBinarySearch
  - roaring::internal::rle16_find_run
  - roaring::internal::rle16_count_less
  - roaring::internal::rle16_count_greater
  - roaring::internal::makeRoomAtIndex
  - roaring::internal::run_container_remove
  - roaring::internal::run_container_contains
  - roaring::internal::run_container_contains_range
  - roaring::internal::run_container_nonzero_cardinality
  - roaring::internal::run_container_empty
  - roaring::internal::run_container_append
  - roaring::internal::run_container_append_first
  - roaring::internal::run_container_append_value
  - roaring::internal::run_container_append_value_first
  - roaring::internal::run_container_is_full
  - roaring::internal::run_container_serialized_size_in_bytes
  - roaring::internal::run_container_size_in_bytes
  - roaring::internal::run_container_equals
  - roaring::internal::run_container_create_range
  - roaring::internal::run_container_minimum
  - roaring::internal::run_container_maximum
  - roaring::internal::run_container_index_equalorlarger
  - roaring::internal::run_container_add_range_nruns
  - roaring::internal::run_container_shift_tail
  - roaring::internal::run_container_remove_range
  - roaring::internal::STRUCT_CONTAINER
  - roaring::internal::container_unwrap_shared
  - roaring::internal::container_mutable_unwrap_shared
  - roaring::internal::get_container_type
  - roaring::internal::get_writable_copy_if_shared
  - roaring::internal::container_to_bitset
  - roaring::internal::get_full_container_name
  - roaring::internal::container_get_cardinality
  - roaring::internal::container_is_full
  - roaring::internal::container_shrink_to_fit
  - roaring::internal::container_range_of_ones
  - roaring::internal::container_from_range
  - roaring::internal::container_repair_after_lazy
  - roaring::internal::container_write
  - roaring::internal::container_size_in_bytes
  - roaring::internal::container_nonzero_cardinality
  - roaring::internal::container_to_uint32_array
  - roaring::internal::container_add
  - roaring::internal::container_remove
  - roaring::internal::container_contains
  - roaring::internal::container_contains_range
  - roaring::internal::container_equals
  - roaring::internal::container_is_subset
  - roaring::internal::container_and
  - roaring::internal::container_and_cardinality
  - roaring::internal::container_intersect
  - roaring::internal::container_iand
  - roaring::internal::container_or
  - roaring::internal::container_lazy_or
  - roaring::internal::container_ior
  - roaring::internal::container_lazy_ior
  - roaring::internal::container_xor
  - roaring::internal::container_add_offset
  - roaring::internal::container_lazy_xor
  - roaring::internal::container_ixor
  - roaring::internal::container_lazy_ixor
  - roaring::internal::container_andnot
  - roaring::internal::container_iandnot
  - roaring::internal::container_iterate
  - roaring::internal::container_iterate64
  - roaring::internal::container_not
  - roaring::internal::container_not_range
  - roaring::internal::container_inot
  - roaring::internal::container_inot_range
  - roaring::internal::container_select
  - roaring::internal::container_maximum
  - roaring::internal::container_minimum
  - roaring::internal::container_rank
  - roaring::internal::container_rank_many
  - roaring::internal::container_get_index
  - roaring::internal::container_add_range
  - roaring::internal::container_remove_range
  - roaring::internal::ra_get_index
  - roaring::internal::ra_get_container_at_index
  - roaring::internal::ra_get_key_at_index
  - roaring::internal::ra_set_container_at_index
  - roaring::internal::ra_get_size
  - roaring::internal::ra_advance_until
  - roaring::internal::ra_replace_key_and_container_at_index
  - roaring::internal::ra_unshare_container_at_index
  - roaring::internal::intersect_vector16
  - roaring::internal::array_container_to_uint32_array_vector16
  - roaring::internal::intersect_vector16_inplace
  - roaring::internal::intersect_vector16_cardinality
  - roaring::internal::difference_vector16
  - roaring::internal::binarySearch4
  - roaring::internal::binarySearch2
  - roaring::internal::intersect_skewed_uint16
  - roaring::internal::intersect_skewed_uint16_cardinality
  - roaring::internal::intersect_skewed_uint16_nonempty
  - roaring::internal::intersect_uint16
  - roaring::internal::intersect_uint16_cardinality
  - roaring::internal::intersect_uint16_nonempty
  - roaring::internal::intersection_uint32
  - roaring::internal::intersection_uint32_card
  - roaring::internal::union_uint16
  - roaring::internal::difference_uint16
  - roaring::internal::xor_uint16
  - roaring::internal::sse_merge
  - roaring::internal::store_unique
  - roaring::internal::unique
  - roaring::internal::uint16_compare
  - roaring::internal::union_vector16
  - roaring::internal::store_unique_xor
  - roaring::internal::unique_xor
  - roaring::internal::xor_vector16
  - roaring::internal::union_uint32
  - roaring::internal::union_uint32_card
  - roaring::internal::fast_union_uint16
  - roaring::internal::_avx512_memequals
  - roaring::internal::_avx2_memequals
  - roaring::internal::memequals
  - roaring::internal::avx512_array_container_to_uint32_array
  - roaring::internal::art_validate_fail
  - roaring::internal::art_is_leaf
  - roaring::internal::art_leaf_populate
  - roaring::internal::art_get_type
  - roaring::internal::art_init_inner_node
  - roaring::internal::art_node4_create
  - roaring::internal::art_free_node4
  - roaring::internal::art_node4_find_child
  - roaring::internal::art_node4_insert
  - roaring::internal::art_node4_erase
  - roaring::internal::art_node4_replace
  - roaring::internal::art_node4_next_child
  - roaring::internal::art_node4_prev_child
  - roaring::internal::art_node4_child_at
  - roaring::internal::art_node4_lower_bound
  - roaring::internal::art_node4_internal_validate
  - roaring::internal::art_node16_create
  - roaring::internal::art_free_node16
  - roaring::internal::art_node16_find_child
  - roaring::internal::art_node16_insert
  - roaring::internal::art_node16_erase
  - roaring::internal::art_node16_replace
  - roaring::internal::art_node16_next_child
  - roaring::internal::art_node16_prev_child
  - roaring::internal::art_node16_child_at
  - roaring::internal::art_node16_lower_bound
  - roaring::internal::art_node16_internal_validate
  - roaring::internal::art_node48_create
  - roaring::internal::art_free_node48
  - roaring::internal::art_node48_find_child
  - roaring::internal::art_node48_insert
  - roaring::internal::art_node48_erase
  - roaring::internal::art_node48_replace
  - roaring::internal::art_node48_next_child
  - roaring::internal::art_node48_prev_child
  - roaring::internal::art_node48_child_at
  - roaring::internal::art_node48_lower_bound
  - roaring::internal::art_node48_internal_validate
  - roaring::internal::art_node256_create
  - roaring::internal::art_free_node256
  - roaring::internal::art_node256_find_child
  - roaring::internal::art_node256_insert
  - roaring::internal::art_node256_erase
  - roaring::internal::art_node256_replace
  - roaring::internal::art_node256_next_child
  - roaring::internal::art_node256_prev_child
  - roaring::internal::art_node256_child_at
  - roaring::internal::art_node256_lower_bound
  - roaring::internal::art_node256_internal_validate
  - roaring::internal::art_find_child
  - roaring::internal::art_replace
  - roaring::internal::art_node_erase
  - roaring::internal::art_node_insert_leaf
  - roaring::internal::art_free_node
  - roaring::internal::art_node_next_child
  - roaring::internal::art_node_prev_child
  - roaring::internal::art_node_child_at
  - roaring::internal::art_node_lower_bound
  - roaring::internal::art_compare_prefix
  - roaring::internal::art_compare_keys
  - roaring::internal::art_common_prefix
  - roaring::internal::art_insert_at
  - roaring::internal::art_erase_at
  - roaring::internal::art_find_at
  - roaring::internal::art_size_in_bytes_at
  - roaring::internal::art_node_print_type
  - roaring::internal::art_node_printf
  - roaring::internal::art_insert
  - roaring::internal::art_erase
  - roaring::internal::art_find
  - roaring::internal::art_is_empty
  - roaring::internal::art_free
  - roaring::internal::art_size_in_bytes
  - roaring::internal::art_printf
  - roaring::internal::art_iterator_node
  - roaring::internal::art_iterator_valid_loc
  - roaring::internal::art_iterator_invalid_loc
  - roaring::internal::art_iterator_down
  - roaring::internal::art_iterator_neighbor_child
  - roaring::internal::art_iterator_up
  - roaring::internal::art_iterator_up_and_move
  - roaring::internal::art_node_init_iterator
  - roaring::internal::art_iterator_move
  - roaring::internal::art_node_iterator_lower_bound
  - roaring::internal::art_init_iterator
  - roaring::internal::art_iterator_next
  - roaring::internal::art_iterator_prev
  - roaring::internal::art_iterator_lower_bound
  - roaring::internal::art_lower_bound
  - roaring::internal::art_upper_bound
  - roaring::internal::art_iterator_insert
  - roaring::internal::art_iterator_erase
  - roaring::internal::art_internal_validate_at
  - roaring::internal::art_internal_validate
  - roaring::internal::bitset_create
  - roaring::internal::bitset_create_with_capacity
  - roaring::internal::bitset_copy
  - roaring::internal::bitset_clear
  - roaring::internal::bitset_fill
  - roaring::internal::bitset_shift_left
  - roaring::internal::bitset_shift_right
  - roaring::internal::bitset_free
  - roaring::internal::bitset_resize
  - roaring::internal::bitset_count
  - roaring::internal::bitset_minimum
  - roaring::internal::bitset_grow
  - roaring::internal::bitset_maximum
  - roaring::internal::bitsets_disjoint
  - roaring::internal::bitsets_intersect
  - roaring::internal::any_bits_set
  - roaring::internal::bitset_contains_all
  - roaring::internal::bitset_union_count
  - roaring::internal::bitset_intersection_count
  - roaring::internal::bitset_difference_count
  - roaring::internal::bitset_symmetric_difference_count
  - roaring::internal::bitset_trim
  - roaring::api::bitset_extract_setbits_avx512
  - roaring::api::bitset_extract_setbits_avx512_uint16
  - roaring::api::bitset_extract_setbits_avx2
  - roaring::api::bitset_extract_setbits
  - roaring::api::bitset_extract_intersection_setbits_uint16
  - roaring::api::bitset_extract_setbits_sse_uint16
  - roaring::api::bitset_extract_setbits_uint16
  - roaring::api::_asm_bitset_set_list_withcard
  - roaring::api::_asm_bitset_set_list
  - roaring::api::_asm_bitset_clear_list
  - roaring::api::_scalar_bitset_clear_list
  - roaring::api::_scalar_bitset_set_list_withcard
  - roaring::api::_scalar_bitset_set_list
  - roaring::api::bitset_clear_list
  - roaring::api::bitset_set_list_withcard
  - roaring::api::bitset_set_list
  - roaring::api::bitset_clear_list
  - roaring::api::bitset_set_list_withcard
  - roaring::api::bitset_set_list
  - roaring::api::bitset_flip_list_withcard
  - roaring::api::bitset_flip_list
  - roaring::internal::array_container_create_given_capacity
  - roaring::internal::array_container_create
  - roaring::internal::array_container_create_range
  - array_container_t *array_container_clone(const array_container_t *src)
  - roaring::internal::array_container_offset
  - roaring::internal::array_container_shrink_to_fit
  - roaring::internal::array_container_free
  - roaring::internal::grow_capacity
  - roaring::internal::clamp
  - roaring::internal::array_container_grow
  - roaring::internal::array_container_copy
  - roaring::internal::array_container_add_from_range
  - roaring::internal::array_container_union
  - roaring::internal::array_container_andnot
  - roaring::internal::array_container_xor
  - roaring::internal::minimum_int32
  - roaring::internal::array_container_intersection
  - roaring::internal::array_container_intersection_cardinality
  - roaring::internal::array_container_intersect
  - roaring::internal::array_container_intersection_inplace
  - roaring::internal::array_container_to_uint32_array
  - roaring::internal::array_container_printf
  - roaring::internal::array_container_printf_as_uint32_array
  - roaring::internal::array_container_validate
  - roaring::internal::array_container_number_of_runs
  - roaring::internal::array_container_write
  - roaring::internal::array_container_is_subset
  - roaring::internal::array_container_read
  - roaring::internal::array_container_iterate
  - roaring::internal::array_container_iterate64
  - roaring::internal::bitset_container_clear
  - roaring::internal::bitset_container_set_all
  - roaring::internal::bitset_container_create
  - roaring::internal::bitset_container_copy
  - roaring::internal::bitset_container_add_from_range
  - roaring::internal::bitset_container_free
  - bitset_container_t *bitset_container_clone(const bitset_container_t *src)
  - roaring::internal::bitset_container_offset
  - roaring::internal::bitset_container_set_range
  - roaring::internal::bitset_container_intersect
  - roaring::internal::_scalar_bitset_container_compute_cardinality
  - roaring::internal::bitset_container_compute_cardinality
  - roaring::internal::bitset_container_compute_cardinality
  - roaring::internal::bitset_container_compute_cardinality
  - roaring::internal::bitset_container_to_uint32_array
  - roaring::internal::bitset_container_printf
  - roaring::internal::bitset_container_printf_as_uint32_array
  - roaring::internal::bitset_container_validate
  - roaring::internal::bitset_container_number_of_runs
  - roaring::internal::bitset_container_write
  - roaring::internal::bitset_container_read
  - roaring::internal::bitset_container_iterate
  - roaring::internal::bitset_container_iterate64
  - roaring::internal::_avx512_bitset_container_equals
  - roaring::internal::_avx2_bitset_container_equals
  - roaring::internal::bitset_container_equals
  - roaring::internal::bitset_container_is_subset
  - roaring::internal::bitset_container_select
  - roaring::internal::bitset_container_minimum
  - roaring::internal::bitset_container_maximum
  - roaring::internal::bitset_container_rank
  - roaring::internal::bitset_container_rank_many
  - roaring::internal::bitset_container_get_index
  - roaring::internal::bitset_container_index_equalorlarger
  - roaring::internal::minimum_uint32
  - roaring::internal::container_free
  - roaring::internal::container_printf
  - roaring::internal::container_printf_as_uint32_array
  - roaring::internal::container_internal_validate
  - roaring::internal::get_copy_of_container
  - roaring::internal::container_clone
  - roaring::internal::shared_container_extract_copy
  - roaring::internal::shared_container_free
  - roaring::internal::container_init_iterator
  - roaring::internal::container_init_iterator_last
  - roaring::internal::container_iterator_next
  - roaring::internal::container_iterator_prev
  - roaring::internal::container_iterator_lower_bound
  - roaring::internal::container_iterator_read_into_uint32
  - roaring::internal::container_iterator_read_into_uint64
  - roaring::internal::bitset_container_from_array
  - roaring::internal::bitset_container_from_run
  - roaring::internal::array_container_from_run
  - roaring::internal::array_container_from_bitset
  - roaring::internal::add_run
  - roaring::internal::run_container_from_array
  - roaring::internal::convert_to_bitset_or_array_container
  - roaring::internal::convert_run_to_efficient_container
  - roaring::internal::convert_run_to_efficient_container_and_free
  - roaring::internal::convert_run_optimize
  - roaring::internal::container_from_run_range
  - roaring::internal::array_bitset_container_andnot
  - roaring::internal::array_bitset_container_iandnot
  - roaring::internal::bitset_array_container_andnot
  - roaring::internal::bitset_array_container_iandnot
  - roaring::internal::run_bitset_container_andnot
  - roaring::internal::run_bitset_container_iandnot
  - roaring::internal::bitset_run_container_andnot
  - roaring::internal::bitset_run_container_iandnot
  - roaring::internal::run_array_array_subtract
  - roaring::internal::run_array_container_andnot
  - roaring::internal::run_array_container_iandnot
  - roaring::internal::array_run_container_andnot
  - roaring::internal::array_run_container_iandnot
  - roaring::internal::run_run_container_andnot
  - roaring::internal::run_run_container_iandnot
  - roaring::internal::array_array_container_andnot
  - roaring::internal::array_array_container_iandnot
  - roaring::internal::bitset_bitset_container_andnot
  - roaring::internal::bitset_bitset_container_iandnot
  - roaring::internal::array_container_equal_bitset
  - roaring::internal::run_container_equals_array
  - roaring::internal::run_container_equals_bitset
  - roaring::internal::array_bitset_container_intersection
  - roaring::internal::array_bitset_container_intersection_cardinality
  - roaring::internal::array_bitset_container_intersect
  - roaring::internal::array_run_container_intersection
  - roaring::internal::run_bitset_container_intersection
  - roaring::internal::array_run_container_intersection_cardinality
  - roaring::internal::run_bitset_container_intersection_cardinality
  - roaring::internal::array_run_container_intersect
  - roaring::internal::run_bitset_container_intersect
  - roaring::internal::bitset_bitset_container_intersection
  - roaring::internal::bitset_bitset_container_intersection_inplace
  - roaring::internal::array_container_negation
  - roaring::internal::bitset_container_negation
  - roaring::internal::bitset_container_negation_inplace
  - roaring::internal::run_container_negation
  - roaring::internal::run_container_negation_inplace
  - roaring::internal::array_container_negation_range
  - roaring::internal::array_container_negation_range_inplace
  - roaring::internal::bitset_container_negation_range
  - roaring::internal::bitset_container_negation_range_inplace
  - roaring::internal::run_container_negation_range
  - roaring::internal::run_container_negation_range_inplace
  - roaring::internal::array_container_is_subset_bitset
  - roaring::internal::run_container_is_subset_array
  - roaring::internal::array_container_is_subset_run
  - roaring::internal::run_container_is_subset_bitset
  - roaring::internal::bitset_container_is_subset_run
  - roaring::internal::array_bitset_container_union
  - roaring::internal::array_bitset_container_lazy_union
  - roaring::internal::run_bitset_container_union
  - roaring::internal::run_bitset_container_lazy_union
  - roaring::internal::array_run_container_union
  - roaring::internal::array_run_container_inplace_union
  - roaring::internal::array_array_container_union
  - roaring::internal::array_array_container_inplace_union
  - roaring::internal::array_array_container_lazy_union
  - roaring::internal::array_array_container_lazy_inplace_union
  - roaring::internal::array_bitset_container_xor
  - roaring::internal::array_bitset_container_lazy_xor
  - roaring::internal::run_bitset_container_xor
  - roaring::internal::run_bitset_container_lazy_xor
  - roaring::internal::array_run_container_xor
  - roaring::internal::array_run_container_lazy_xor
  - roaring::internal::run_run_container_xor
  - roaring::internal::array_array_container_xor
  - roaring::internal::array_array_container_lazy_xor
  - roaring::internal::bitset_bitset_container_xor
  - roaring::internal::bitset_array_container_ixor
  - roaring::internal::bitset_bitset_container_ixor
  - roaring::internal::array_bitset_container_ixor
  - roaring::internal::run_bitset_container_ixor
  - roaring::internal::bitset_run_container_ixor
  - roaring::internal::array_run_container_ixor
  - roaring::internal::run_array_container_ixor
  - roaring::internal::array_array_container_ixor
  - roaring::internal::run_run_container_ixor
  - roaring::internal::run_container_add
  - roaring::internal::run_container_create_given_capacity
  - roaring::internal::run_container_shrink_to_fit
  - roaring::internal::run_container_create
  - run_container_t *run_container_clone(const run_container_t *src)
  - roaring::internal::run_container_offset
  - roaring::internal::run_container_free
  - roaring::internal::run_container_grow
  - roaring::internal::run_container_copy
  - roaring::internal::run_container_union
  - roaring::internal::run_container_union_inplace
  - roaring::internal::run_container_xor
  - roaring::internal::run_container_intersection
  - roaring::internal::run_container_intersection_cardinality
  - roaring::internal::run_container_intersect
  - roaring::internal::run_container_andnot
  - roaring::internal::run_container_to_uint32_array
  - roaring::internal::run_container_printf
  - roaring::internal::run_container_printf_as_uint32_array
  - roaring::internal::run_container_validate
  - roaring::internal::run_container_write
  - roaring::internal::run_container_read
  - roaring::internal::run_container_iterate
  - roaring::internal::run_container_iterate64
  - roaring::internal::run_container_is_subset
  - roaring::internal::run_container_smart_append_exclusive
  - roaring::internal::run_container_select
  - roaring::internal::run_container_rank
  - roaring::internal::run_container_rank_many
  - roaring::internal::run_container_get_index
  - roaring::internal::_avx512_run_container_cardinality
  - roaring::internal::CROARING_TARGET_AVX2::_avx2_run_container_cardinality
  - roaring::internal::_scalar_run_container_cardinality
  - roaring::internal::run_container_cardinality
  - roaring::internal::run_container_cardinality
  - roaring::internal::cpuid
  - roaring::internal::xgetbv
  - roaring::internal::dynamic_croaring_detect_supported_architectures
  - roaring::internal::croaring_detect_supported_architectures
  - roaring::internal::croaring_detect_supported_architectures
  - roaring::internal::croaring_detect_supported_architectures
  - roaring::internal::croaring_hardware_support
  - roaring::internal::croaring_hardware_support
  - roaring::internal::croaring_hardware_support
  - roaring::internal::croaring_hardware_support
  - roaring_bitmap_aligned_malloc
  - roaring_bitmap_aligned_free
  - roaring_init_memory_hook
  - roaring_malloc
  - roaring_realloc
  - roaring_calloc
  - roaring_free
  - roaring_aligned_malloc
  - roaring_aligned_free
  - roaring::api::is_cow
  - roaring::api::is_frozen
  - roaring::api::containerptr_roaring_bitmap_add
  - roaring::api::roaring_bitmap_create_with_capacity
  - roaring::api::roaring_bitmap_init_with_capacity
  - roaring::api::add_bulk_impl
  - roaring::api::roaring_bitmap_add_many
  - roaring::api::roaring_bitmap_add_bulk
  - roaring::api::roaring_bitmap_contains_bulk
  - roaring::api::roaring_bitmap_of_ptr
  - roaring::api::roaring_bitmap_of
  - roaring::api::minimum_uint64
  - roaring::api::roaring_bitmap_from_range
  - roaring::api::roaring_bitmap_add_range_closed
  - roaring::api::roaring_bitmap_remove_range_closed
  - roaring::api::roaring_bitmap_printf
  - roaring::api::roaring_bitmap_printf_describe
  - roaring::api::min_max_sum_fnc
  - roaring::api::roaring_bitmap_statistics
  - roaring::api::roaring_bitmap_internal_validate
  - roaring::api::roaring_bitmap_copy
  - roaring::api::roaring_bitmap_overwrite
  - roaring::api::roaring_bitmap_free
  - roaring::api::roaring_bitmap_clear
  - roaring::api::roaring_bitmap_add
  - roaring::api::roaring_bitmap_add_checked
  - roaring::api::roaring_bitmap_remove
  - roaring::api::roaring_bitmap_remove_checked
  - roaring::api::roaring_bitmap_remove_many
  - roaring::api::roaring_bitmap_and
  - roaring::api::roaring_bitmap_or_many
  - roaring::api::roaring_bitmap_xor_many
  - roaring::api::roaring_bitmap_and_inplace
  - roaring::api::roaring_bitmap_or
  - roaring::api::roaring_bitmap_or_inplace
  - roaring::api::roaring_bitmap_xor
  - roaring::api::roaring_bitmap_xor_inplace
  - roaring::api::roaring_bitmap_andnot
  - roaring::api::roaring_bitmap_andnot_inplace
  - roaring::api::roaring_bitmap_get_cardinality
  - roaring::api::roaring_bitmap_range_cardinality
  - roaring::api::roaring_bitmap_is_empty
  - roaring::api::roaring_bitmap_to_uint32_array
  - roaring::api::roaring_bitmap_range_uint32_array
  - roaring::api::roaring_bitmap_run_optimize
  - roaring::api::roaring_bitmap_shrink_to_fit
  - roaring::api::roaring_bitmap_remove_run_compression
  - roaring::api::roaring_bitmap_serialize
  - roaring::api::roaring_bitmap_size_in_bytes
  - roaring::api::roaring_bitmap_portable_size_in_bytes
  - roaring::api::roaring_bitmap_portable_deserialize_safe
  - roaring::api::roaring_bitmap_portable_deserialize
  - roaring::api::roaring_bitmap_portable_deserialize_size
  - roaring::api::roaring_bitmap_portable_serialize
  - roaring::api::roaring_bitmap_deserialize
  - roaring::api::roaring_bitmap_deserialize_safe
  - roaring::api::roaring_iterate
  - roaring::api::roaring_iterate64
  - roaring::api::iter_new_container_partial_init
  - roaring::api::loadfirstvalue
  - roaring::api::loadlastvalue
  - roaring::api::loadfirstvalue_largeorequal
  - roaring::api::roaring_iterator_init
  - roaring::api::roaring_iterator_init_last
  - roaring::api::roaring_iterator_create
  - roaring::api::roaring_uint32_iterator_copy
  - roaring::api::roaring_uint32_iterator_move_equalorlarger
  - roaring::api::roaring_uint32_iterator_advance
  - roaring::api::roaring_uint32_iterator_previous
  - roaring::api::roaring_uint32_iterator_read
  - roaring::api::roaring_uint32_iterator_free
  - roaring::api::roaring_bitmap_equals
  - roaring::api::roaring_bitmap_is_subset
  - roaring::api::insert_flipped_container
  - roaring::api::inplace_flip_container
  - roaring::api::insert_fully_flipped_container
  - roaring::api::inplace_fully_flip_container
  - roaring::api::roaring_bitmap_flip
  - roaring::api::roaring_bitmap_flip_inplace
  - roaring::api::offset_append_with_merge
  - roaring::api::roaring_bitmap_add_offset
  - roaring::api::roaring_bitmap_lazy_or
  - roaring::api::roaring_bitmap_lazy_or_inplace
  - roaring::api::roaring_bitmap_lazy_xor
  - roaring::api::roaring_bitmap_lazy_xor_inplace
  - roaring::api::roaring_bitmap_repair_after_lazy
  - roaring::api::roaring_bitmap_rank
  - roaring::api::roaring_bitmap_rank_many
  - roaring::api::roaring_bitmap_get_index
  - roaring::api::roaring_bitmap_minimum
  - roaring::api::roaring_bitmap_maximum
  - roaring::api::roaring_bitmap_select
  - roaring::api::roaring_bitmap_intersect
  - roaring::api::roaring_bitmap_intersect_with_range
  - roaring::api::roaring_bitmap_and_cardinality
  - roaring::api::roaring_bitmap_jaccard_index
  - roaring::api::roaring_bitmap_or_cardinality
  - roaring::api::roaring_bitmap_andnot_cardinality
  - roaring::api::roaring_bitmap_xor_cardinality
  - roaring::api::roaring_bitmap_contains
  - roaring::api::roaring_bitmap_contains_range
  - roaring::api::roaring_bitmap_is_strict_subset
  - roaring::api::roaring_bitmap_frozen_size_in_bytes
  - roaring::api::arena_alloc
  - roaring::api::roaring_bitmap_frozen_serialize
  - roaring::api::roaring_bitmap_frozen_view
  - roaring_bitmap_t *roaring_bitmap_portable_deserialize_frozen(const char *buf)
  - roaring::api::roaring_bitmap_to_bitset
  - roaring::api::split_key
  - roaring::api::combine_key
  - roaring::api::minimum
  - roaring::api::create_leaf
  - roaring::api::copy_leaf_container
  - roaring::api::free_leaf
  - roaring::api::compare_high48
  - roaring::api::roaring64_iterator_init_at_leaf_first
  - roaring::api::roaring64_iterator_init_at_leaf_last
  - roaring::api::roaring64_iterator_init_at
  - roaring::api::roaring64_bitmap_create
  - roaring::api::roaring64_bitmap_free
  - roaring::api::roaring64_bitmap_copy
  - roaring::api::roaring64_bitmap_from_range
  - roaring::api::roaring64_bitmap_of_ptr
  - roaring::api::roaring64_bitmap_of
  - roaring::api::containerptr_roaring64_bitmap_add
  - roaring::api::roaring64_bitmap_add
  - roaring::api::roaring64_bitmap_add_checked
  - roaring::api::roaring64_bitmap_add_bulk
  - roaring::api::roaring64_bitmap_add_many
  - roaring::api::add_range_closed_at
  - roaring::api::roaring64_bitmap_add_range
  - roaring::api::roaring64_bitmap_add_range_closed
  - roaring::api::roaring64_bitmap_contains
  - roaring::api::roaring64_bitmap_contains_range
  - roaring::api::roaring64_bitmap_contains_bulk
  - roaring::api::roaring64_bitmap_select
  - roaring::api::roaring64_bitmap_rank
  - roaring::api::roaring64_bitmap_get_index
  - roaring::api::containerptr_roaring64_bitmap_remove
  - roaring::api::roaring64_bitmap_remove
  - roaring::api::roaring64_bitmap_remove_checked
  - roaring::api::roaring64_bitmap_remove_bulk
  - roaring::api::roaring64_bitmap_remove_many
  - roaring::api::remove_range_closed_at
  - roaring::api::roaring64_bitmap_remove_range
  - roaring::api::roaring64_bitmap_remove_range_closed
  - roaring::api::roaring64_bitmap_get_cardinality
  - roaring::api::roaring64_bitmap_range_cardinality
  - roaring::api::roaring64_bitmap_is_empty
  - roaring::api::roaring64_bitmap_minimum
  - roaring::api::roaring64_bitmap_maximum
  - roaring::api::roaring64_bitmap_run_optimize
  - roaring::api::roaring64_leaf_internal_validate
  - roaring::api::roaring64_bitmap_internal_validate
  - roaring::api::roaring64_bitmap_equals
  - roaring::api::roaring64_bitmap_is_subset
  - roaring::api::roaring64_bitmap_is_strict_subset
  - roaring::api::roaring64_bitmap_and
  - roaring::api::roaring64_bitmap_and_cardinality
  - roaring::api::roaring64_bitmap_and_inplace
  - roaring::api::roaring64_bitmap_intersect
  - roaring::api::roaring64_bitmap_intersect_with_range
  - roaring::api::roaring64_bitmap_jaccard_index
  - roaring::api::roaring64_bitmap_or
  - roaring::api::roaring64_bitmap_or_cardinality
  - roaring::api::roaring64_bitmap_or_inplace
  - roaring::api::roaring64_bitmap_xor
  - roaring::api::roaring64_bitmap_xor_cardinality
  - roaring::api::roaring64_bitmap_xor_inplace
  - roaring::api::roaring64_bitmap_andnot
  - roaring::api::roaring64_bitmap_andnot_cardinality
  - roaring::api::roaring64_bitmap_andnot_inplace
  - roaring::api::roaring64_flip_leaf
  - roaring::api::roaring64_flip_leaf_inplace
  - roaring::api::roaring64_bitmap_flip
  - roaring::api::roaring64_bitmap_flip_closed
  - roaring::api::roaring64_bitmap_flip_inplace
  - roaring::api::roaring64_bitmap_flip_closed_inplace
  - roaring::api::count_high32
  - roaring::api::roaring_bitmap_free_without_containers
  - roaring::api::roaring64_bitmap_portable_size_in_bytes
  - roaring::api::roaring64_bitmap_portable_serialize
  - roaring::api::roaring64_bitmap_portable_deserialize_size
  - roaring::api::roaring64_bitmap_portable_deserialize_safe
  - roaring::api::roaring64_bitmap_iterate
  - roaring::api::roaring64_bitmap_to_uint64_array
  - roaring::api::roaring64_iterator_create
  - roaring::api::roaring64_iterator_create_last
  - roaring::api::roaring64_iterator_reinit
  - roaring::api::roaring64_iterator_reinit_last
  - roaring::api::roaring64_iterator_copy
  - roaring::api::roaring64_iterator_free
  - roaring::api::roaring64_iterator_has_value
  - roaring::api::roaring64_iterator_value
  - roaring::api::roaring64_iterator_advance
  - roaring::api::roaring64_iterator_previous
  - roaring::api::roaring64_iterator_move_equalorlarger
  - roaring::api::roaring64_iterator_read
  - roaring::internal::realloc_array
  - roaring::internal::ra_init_with_capacity
  - roaring::internal::ra_shrink_to_fit
  - roaring::internal::ra_init
  - roaring::internal::ra_overwrite
  - roaring::internal::ra_clear_containers
  - roaring::internal::ra_reset
  - roaring::internal::ra_clear_without_containers
  - roaring::internal::ra_clear
  - roaring::internal::extend_array
  - roaring::internal::ra_append
  - roaring::internal::ra_append_copy
  - roaring::internal::ra_append_copies_until
  - roaring::internal::ra_append_copy_range
  - roaring::internal::ra_append_copies_after
  - roaring::internal::ra_append_move_range
  - roaring::internal::ra_append_range
  - roaring::internal::ra_get_container
  - roaring::internal::ra_advance_until_freeing
  - roaring::internal::ra_insert_new_key_value_at
  - roaring::internal::ra_downsize
  - roaring::internal::ra_remove_at_index
  - roaring::internal::ra_remove_at_index_and_free
  - roaring::internal::ra_copy_range
  - roaring::internal::ra_shift_tail
  - roaring::internal::ra_to_uint32_array
  - roaring::internal::ra_range_uint32_array
  - roaring::internal::ra_has_run_container
  - roaring::internal::ra_portable_header_size
  - roaring::internal::ra_portable_size_in_bytes
  - roaring::internal::ra_portable_serialize
  - roaring::internal::ra_portable_deserialize_size
  - roaring::internal::ra_portable_deserialize
  - roaring::api::compare
  - roaring::api::pq_add
  - roaring::api::pq_free
  - roaring::api::percolate_down
  - roaring::api::create_pq
  - roaring::api::pq_poll
  - roaring::api::lazy_or_from_lazy_inputs
  - roaring::api::roaring_bitmap_or_many_heap
  source_file: /src/ndpi/src/lib/third_party/src/roaring.c
- function_names:
  - flag2delim
  - memchr2
  - my_memmem
  - strlenspn
  - strlencspn
  - char_is_white
  - cstrcasecmp
  - streq
  - bsearch_keyword_type
  - is_keyword
  - st_clear
  - st_assign_char
  - st_assign
  - st_copy
  - st_is_arithmetic_op
  - st_is_unary_op
  - parse_white
  - parse_operator1
  - parse_other
  - parse_char
  - parse_eol_comment
  - parse_hash
  - parse_dash
  - is_mysql_comment
  - parse_slash
  - parse_backslash
  - parse_operator2
  - is_backslash_escaped
  - is_double_delim_escaped
  - parse_string_core
  - parse_string
  - parse_estring
  - parse_ustring
  - parse_qstring_core
  - parse_qstring
  - parse_nqstring
  - parse_bstring
  - parse_xstring
  - parse_bword
  - parse_word
  - parse_tick
  - parse_var
  - parse_money
  - parse_number
  - libinjection_version
  - libinjection_sqli_tokenize
  - libinjection_sqli_init
  - libinjection_sqli_reset
  - libinjection_sqli_callback
  - syntax_merge_words
  - libinjection_sqli_fold
  - libinjection_sqli_fingerprint
  - libinjection_sqli_check_fingerprint
  - libinjection_sqli_lookup_word
  - libinjection_sqli_blacklist
  - libinjection_sqli_not_whitelist
  - reparse_as_mysql
  - libinjection_sqli_get_token
  - libinjection_is_sqli
  - libinjection_sqli
  source_file: /src/ndpi/src/lib/third_party/src/libinjection_sqli.c
- function_names:
  - copy_double_arr
  - swap
  - btree_zero
  - init_node
  - find_node_split_dim
  - partition_node_indices
  - recursive_build
  - btree_init
  - query_depth_first
  - btree_query
  - free_2d_double
  - free_2d_int
  - free_tree
  - free_knn
  - manhattan_dist
  - min_dist
  - dual_swap
  - nheap_init
  - nheap_largest
  - nheap_push
  - simultaneous_sort
  - nheap_sort
  - nheap_get_arrays
  source_file: /src/ndpi/src/lib/third_party/src/ball.c
- function_names:
  - jenkins_one_at_a_time_hash
  - cache_touch_entry
  - cache_entry_new
  - cache_entry_map_new
  - cache_new
  - cache_add
  - cache_contains
  - cache_remove
  - cache_free
  source_file: /src/ndpi/src/lib/third_party/src/libcache.c
- function_names:
  - SHA1Transform
  - SHA1Init
  - SHA1Update
  - SHA1Final
  - main
  source_file: /src/ndpi/src/lib/third_party/src/ndpi_sha1.c
- function_names:
  - is_big_endian
  - byte_reverse
  - ndpi_MD5Init
  - MD5Transform
  - ndpi_MD5Update
  - ndpi_MD5Final
  source_file: /src/ndpi/src/lib/third_party/src/ndpi_md5.c
- function_names:
  - strptime
  - conv_num
  source_file: /src/ndpi/src/lib/third_party/src/strptime.c
- function_names:
  - kd_create
  - kd_free
  - clear_rec
  - kd_clear
  - kd_data_destructor
  - insert_rec
  - kd_insert
  - find_nearest
  - find_nearest_n
  - kd_nearest_i
  - kd_nearest
  - kd_nearest_range
  - kd_res_free
  - kd_res_size
  - kd_res_rewind
  - kd_res_end
  - kd_res_next
  - kd_res_item
  - kd_res_item_data
  - hyperrect_create
  - hyperrect_free
  - hyperrect_duplicate
  - hyperrect_extend
  - hyperrect_dist_sq
  - alloc_resnode
  - free_resnode
  - rlist_insert
  - clear_results
  source_file: /src/ndpi/src/lib/third_party/src/kdtree.c
- function_names:
  - html_decode_char_at
  - cstrcasecmp_with_null
  - htmlencode_startswith
  - is_black_tag
  - is_black_attr
  - is_black_url
  - libinjection_is_xss
  - libinjection_xss
  source_file: /src/ndpi/src/lib/third_party/src/libinjection_xss.c
- function_names:
  - decode_header
  - check_indices
  - check_indices
  - find_best_encoding
  - shoco_compress
  - shoco_decompress
  source_file: /src/ndpi/src/lib/third_party/src/shoco.c
- function_names:
  - KeyExpansion
  - AES_init_ctx
  - AES_init_ctx_iv
  - AES_ctx_set_iv
  - AddRoundKey
  - SubBytes
  - ShiftRows
  - xtime
  - MixColumns
  - Multiply
  - InvMixColumns
  - InvSubBytes
  - InvShiftRows
  - Cipher
  - InvCipher
  - AES_ECB_encrypt
  - AES_ECB_decrypt
  - XorWithIv
  - AES_CBC_encrypt_buffer
  - AES_CBC_decrypt_buffer
  - AES_CTR_xcrypt_buffer
  source_file: /src/ndpi/src/lib/third_party/src/aes.c
- function_names:
  - gcry_errstr
  - gpg_strerror_r
  - gcry_control
  - gcry_check_version
  - gcry_md_open
  - gcry_md_close
  - gcry_md_reset
  - gcry_md_setkey
  - gcry_md_write
  - gcry_md_get_algo_dlen
  - gcry_md_get_algo
  - gcry_md_read
  - check_valid_algo_mode
  - gcry_cipher_open
  - gcry_cipher_close
  - gcry_cipher_ctl
  - gcry_cipher_reset
  - gcry_cipher_setkey
  - gcry_cipher_setiv
  - gcry_cipher_authenticate
  - gcry_cipher_checktag
  - gcry_cipher_get_algo_keylen
  - _gcry_cipher_crypt
  - gcry_cipher_encrypt
  - gcry_cipher_decrypt
  source_file: /src/ndpi/src/lib/third_party/src/gcrypt_light.c
- function_names:
  - sha1_compress
  source_file: /src/ndpi/src/lib/third_party/src/sha1-fast.c
- function_names:
  - gettimeofday
  source_file: /src/ndpi/src/lib/third_party/src/windows/gettimeofday.c
- function_names:
  - exchange_a
  - _getopt_initialize_a
  - _getopt_internal_r_a
  - _getopt_internal_a
  - getopt_a
  - getopt_long_a
  - getopt_long_only_a
  - _getopt_long_r_a
  - _getopt_long_only_r_a
  - exchange_w
  - _getopt_initialize_w
  - _getopt_internal_r_w
  - _getopt_internal_w
  - getopt_w
  - getopt_long_w
  - getopt_long_only_w
  - _getopt_long_r_w
  - _getopt_long_only_r_w
  source_file: /src/ndpi/src/lib/third_party/src/windows/getopt.c
- function_names:
  - __is_datalink_supported
  - __is_l3_proto_supported
  - dissect_l2
  - __is_l4_proto_supported
  - dissect_l3
  - dissect_l4
  - is_gtp_u
  - dissect_l4_detunneling
  - dissect_do
  - internal_FuzzerMutate
  - update_do_l7
  - update_do_simplest
  - update_do
  - swap_direction
  - __dup_pkt
  - __free_pkt
  - __add_pkt
  - __del_pkt
  - __swap_pkt
  - __free_m_pkts
  - do_pkt_actions
  - do_payload_actions
  - __serialize_to_fd
  - __serialize
  - __deserialize_from_fd
  - __deserialize
  - __mutate
  - pl7m_mutator
  - pl7m_mutator_fd
  source_file: /src/ndpi/src/lib/third_party/src/fuzz/pl7m.c
- function_names:
  - _hll_rank
  - hll_init
  - hll_destroy
  - hll_reset
  - _hll_add_hash
  - hll_add
  - hll_count
  source_file: /src/ndpi/src/lib/third_party/src/hll/hll.c
- function_names:
  - MurmurHash
  source_file: /src/ndpi/src/lib/third_party/src/hll/MurmurHash3.c
- function_names:
  - mbedtls_aesni_has_support
  - mbedtls_aesni_crypt_ecb
  - mbedtls_aesni_gcm_mult
  - mbedtls_aesni_inverse_key
  - aesni_setkey_enc_128
  - aesni_setkey_enc_192
  - aesni_setkey_enc_256
  - mbedtls_aesni_setkey_enc
  source_file: /src/ndpi/src/lib/third_party/src/gcrypt/aesni.c
- function_names:
  - aes_crypt_ecb_wrap
  - aes_setkey_dec_wrap
  - aes_setkey_enc_wrap
  - aes_ctx_zero
  - gcm_aes_setkey_wrap
  - null_crypt_stream
  - null_setkey
  - null_ctx_alloc
  - null_ctx_free
  source_file: /src/ndpi/src/lib/third_party/src/gcrypt/cipher_wrap.c
- function_names:
  - xorbytes
  - xorbytes3d
  - xorbytes3e
  - mbedtls_gcm_init
  - gcm_gen_table
  - mbedtls_gcm_setkey
  - gcm_mult
  - mbedtls_gcm_starts
  - mbedtls_gcm_update_ad
  - gcm_incr
  - gcm_mask
  - mbedtls_gcm_update
  - mbedtls_gcm_finish
  - mbedtls_gcm_crypt_and_tag
  - mbedtls_gcm_auth_decrypt
  - mbedtls_gcm_free
  source_file: /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c
- function_names:
  - mbedtls_cipher_list
  - mbedtls_cipher_info_from_type
  - mbedtls_cipher_info_from_string
  - mbedtls_cipher_info_from_values
  - mbedtls_cipher_init
  - mbedtls_cipher_setkey
  - mbedtls_cipher_set_iv
  - mbedtls_cipher_reset
  - mbedtls_cipher_update_ad
  - mbedtls_cipher_update
  - mbedtls_cipher_finish
  - mbedtls_cipher_write_tag
  - mbedtls_cipher_check_tag
  - mbedtls_cipher_crypt
  source_file: /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c
- function_names:
  - sha256_init
  - sha256_transform
  - sha256_write_byte_block
  - sha256_update
  - sha256_final
  - hmac_sha256
  source_file: /src/ndpi/src/lib/third_party/src/gcrypt/digest.c
- function_names:
  - aes_gen_tables
  - mbedtls_aes_init
  - mbedtls_aes_free
  - mbedtls_aes_setkey_enc
  - mbedtls_aes_setkey_dec
  - mbedtls_internal_aes_encrypt
  - mbedtls_internal_aes_decrypt
  - mbedtls_aes_crypt_ecb
  source_file: /src/ndpi/src/lib/third_party/src/gcrypt/aes.c
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/libinjection_xss.h
- function_names:
  - roaring_trailing_zeroes
  - roaring_leading_zeroes
  - roaring_trailing_zeroes
  - roaring_leading_zeroes
  - roaring_hamming_backup
  - roaring_hamming
  - croaring_refcount_inc
  - croaring_refcount_dec
  - croaring_refcount_get
  - croaring_refcount_inc
  - croaring_refcount_dec
  - croaring_refcount_get
  - croaring_refcount_inc
  - croaring_refcount_dec
  - croaring_refcount_get
  - croaring_refcount_inc
  - croaring_refcount_dec
  - croaring_refcount_get
  - roaring::api::bitset_size_in_bytes
  - roaring::api::bitset_size_in_bits
  - roaring::api::bitset_size_in_words
  - roaring::api::bitset_set
  - roaring::api::bitset_set_to_value
  - roaring::api::bitset_get
  - roaring::api::bitset_next_set_bit
  - roaring::api::bitset_next_set_bits
  - roaring::api::bitset_for_each
  - roaring::api::bitset_print
  - roaring::api::roaring_bitmap_create
  - roaring::api::roaring_bitmap_init_cleared
  - roaring::api::roaring_bitmap_get_copy_on_write
  - roaring::api::roaring_bitmap_set_copy_on_write
  - roaring::api::roaring_bitmap_add_range
  - roaring::api::roaring_bitmap_remove_range
  - roaring::api::roaring_init_iterator
  - roaring::api::roaring_init_iterator_last
  - 'roaring_uint32_iterator_t *

    roaring_create_iterator(const roaring_bitmap_t *r)'
  - roaring::api::roaring_advance_uint32_iterator
  - roaring::api::roaring_previous_uint32_iterator
  - roaring::api::roaring_move_uint32_iterator_equalorlarger
  - 'roaring_uint32_iterator_t *

    roaring_copy_uint32_iterator(const roaring_uint32_iterator_t *it)'
  - roaring::api::roaring_free_uint32_iterator
  - roaring::api::roaring_read_uint32_iterator
  source_file: /src/ndpi/src/lib/third_party/include/roaring.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/pl7m.h
- function_names:
  - roaring::api::roaring_bitmap_create
  - roaring::api::roaring_bitmap_init_cleared
  - roaring::api::roaring_bitmap_get_copy_on_write
  - roaring::api::roaring_bitmap_set_copy_on_write
  - roaring::api::roaring_bitmap_add_range
  - roaring::api::roaring_bitmap_remove_range
  source_file: /src/ndpi/src/lib/third_party/include/roaring_v2.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/libcache.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/gcrypt_light.h
- function_names:
  - secure_memzero
  - secure_memzero
  source_file: /src/ndpi/src/lib/third_party/include/secure_memzero.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/ndpi_sha1.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/rce_injection.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/ndpi_sha256.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/uthash.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/libinjection_html5.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/hll.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/MurmurHash3.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/libinjection_sqli_data.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/kdtree.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/ahocorasick.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/ball.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/libinjection_sqli.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/shoco.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/ndpi_patricia.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/ndpi_md5.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/libinjection.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/shoco_domains_model.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/aes.h
- function_names:
  - binary_fuse_murmur64
  - binary_fuse_mix_split
  - binary_fuse_rotl64
  - binary_fuse_reduce
  - binary_fuse8_fingerprint
  - binary_fuse_rng_splitmix64
  - binary_fuse_mulhi
  - binary_fuse_mulhi
  - binary_fuse_mulhi
  - binary_fuse_mulhi
  - binary_fuse8_hash_batch
  - binary_fuse8_hash
  - binary_fuse8_contain
  - binary_fuse_calculate_segment_length
  - binary_fuse_max
  - binary_fuse_calculate_size_factor
  - binary_fuse8_allocate
  - binary_fuse8_size_in_bytes
  - binary_fuse8_free
  - binary_fuse_mod3
  - binary_fuse8_populate
  - binary_fuse16_fingerprint
  - binary_fuse16_hash_batch
  - binary_fuse16_hash
  - binary_fuse16_contain
  - binary_fuse16_allocate
  - binary_fuse16_size_in_bytes
  - binary_fuse16_free
  - binary_fuse16_populate
  source_file: /src/ndpi/src/lib/third_party/include/binaryfusefilter.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/windows/getopt.h
- function_names:
  - _wopendir
  - _wreaddir
  - _wreaddir_r
  - _wclosedir
  - _wrewinddir
  - dirent_first
  - dirent_next
  - dirent_hash
  - opendir
  - readdir
  - readdir_r
  - closedir
  - rewinddir
  - _wtelldir
  - telldir
  - _wseekdir
  - seekdir
  - scandir
  - alphasort
  - versionsort
  - strverscmp
  - dirent_mbstowcs_s
  - dirent_wcstombs_s
  - dirent_set_errno
  source_file: /src/ndpi/src/lib/third_party/include/windows/dirent.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/gcrypt/cipher_wrap.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/gcrypt/gcm.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/gcrypt/digest.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/gcrypt/aesni.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/gcrypt/common.h
- function_names:
  - mbedtls_error_add
  source_file: /src/ndpi/src/lib/third_party/include/gcrypt/error.h
- function_names:
  - mbedtls_cipher_info_get_type
  - mbedtls_cipher_info_get_mode
  - mbedtls_cipher_info_get_key_bitlen
  - mbedtls_cipher_info_get_name
  - mbedtls_cipher_info_get_iv_size
  - mbedtls_cipher_info_get_block_size
  - mbedtls_cipher_info_has_variable_key_bitlen
  - mbedtls_cipher_info_has_variable_iv_size
  - mbedtls_cipher_get_block_size
  - mbedtls_cipher_get_cipher_mode
  - mbedtls_cipher_get_iv_size
  - mbedtls_cipher_get_type
  - mbedtls_cipher_get_name
  - mbedtls_cipher_get_key_bitlen
  - mbedtls_cipher_get_operation
  source_file: /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h
- function_names: []
  source_file: /src/ndpi/src/lib/third_party/include/gcrypt/aes.h
- function_names:
  - ndpi_search_nats_tcp
  - init_nats_dissector
  source_file: /src/ndpi/src/lib/protocols/nats.c
- function_names:
  - ndpi_int_roughtime_add_connection
  - ndpi_search_roughtime
  - init_roughtime_dissector
  source_file: /src/ndpi/src/lib/protocols/roughtime.c
- function_names:
  - ndpi_int_hamachi_add_connection
  - search_hamachi_tcp
  - search_hamachi_udp
  - ndpi_search_hamachi
  - init_hamachi_dissector
  source_file: /src/ndpi/src/lib/protocols/hamachi.c
- function_names:
  - ndpi_int_nfs_add_connection
  - ndpi_search_nfs
  - init_nfs_dissector
  source_file: /src/ndpi/src/lib/protocols/nfs.c
- function_names:
  - ndpi_int_crynet_add_connection
  - ndpi_search_crynet
  - init_crynet_dissector
  source_file: /src/ndpi/src/lib/protocols/crynet.c
- function_names:
  - ndpi_int_nano_add_connection
  - ndpi_search_nano
  - init_nano_dissector
  source_file: /src/ndpi/src/lib/protocols/nano.c
- function_names:
  - ndpi_check_hcl_notes
  - ndpi_search_hcl_notes
  - init_hcl_notes_dissector
  source_file: /src/ndpi/src/lib/protocols/hcl_notes.c
- function_names:
  - ndpi_int_profinet_io_add_connection
  - ndpi_search_profinet_io
  - init_profinet_io_dissector
  source_file: /src/ndpi/src/lib/protocols/profinet_io.c
- function_names:
  - ndpi_int_mpegdash_add_connection
  - ndpi_search_mpegdash_http
  - init_mpegdash_dissector
  source_file: /src/ndpi/src/lib/protocols/mpegdash.c
- function_names:
  - ndpi_int_checkmk_add_connection
  - ndpi_search_checkmk
  - init_checkmk_dissector
  source_file: /src/ndpi/src/lib/protocols/checkmk.c
- function_names:
  - ndpi_check_radius
  - ndpi_search_radius
  - init_radius_dissector
  source_file: /src/ndpi/src/lib/protocols/radius_proto.c
- function_names:
  - ndpi_int_among_us_add_connection
  - ndpi_search_among_us
  - init_among_us_dissector
  source_file: /src/ndpi/src/lib/protocols/among_us.c
- function_names:
  - ndpi_int_monero_add_connection
  - ndpi_search_monero
  - init_monero_dissector
  source_file: /src/ndpi/src/lib/protocols/monero.c
- function_names:
  - forge_attempt_msg
  - ndpi_set_binary_data_transfer
  - ndpi_set_binary_application_transfer
  - ndpi_analyze_content_signature
  - ndpi_search_http_tcp_again
  - ndpi_http_is_print
  - ndpi_http_check_human_redeable_content
  - ndpi_validate_http_content
  - ndpi_http_check_content
  - ndpi_int_http_add_connection
  - setHttpUserAgent
  - ndpi_http_parse_subprotocol
  - ndpi_check_user_agent
  - http_process_user_agent
  - ndpi_check_numeric_ip
  - ndpi_check_http_url
  - ndpi_check_http_server
  - check_content_type_and_change_protocol
  - non_ctrl
  - http_request_url_offset
  - is_a_suspicious_header
  - ndpi_check_http_header
  - parse_response_code
  - is_request
  - is_response
  - process_request
  - process_response
  - reset
  - ndpi_check_http_tcp
  - ndpi_search_http_tcp
  - init_http_dissector
  source_file: /src/ndpi/src/lib/protocols/http.c
- function_names:
  - ndpi_int_nintendo_add_connection
  - ndpi_search_nintendo
  - init_nintendo_dissector
  source_file: /src/ndpi/src/lib/protocols/nintendo.c
- function_names:
  - ndpi_int_lagofast_add_connection
  - ndpi_search_lagofast
  - init_lagofast_dissector
  source_file: /src/ndpi/src/lib/protocols/lagofast.c
- function_names:
  - ndpi_int_tuya_lp_add_connection
  - ndpi_search_tuya_lp
  - init_tuya_lp_dissector
  source_file: /src/ndpi/src/lib/protocols/tuya_lp.c
- function_names:
  - ndpi_int_raknet_add_connection
  - raknet_dissect_ip
  - is_custom_version
  - exclude_proto
  - ndpi_search_raknet
  - init_raknet_dissector
  source_file: /src/ndpi/src/lib/protocols/raknet.c
- function_names:
  - ndpi_int_someip_add_connection
  - someip_data_cover_32
  - ndpi_search_someip
  - init_someip_dissector
  source_file: /src/ndpi/src/lib/protocols/someip.c
- function_names:
  - ndpi_int_oracle_add_connection
  - ndpi_search_oracle
  - init_oracle_dissector
  source_file: /src/ndpi/src/lib/protocols/oracle.c
- function_names:
  - ndpi_int_yojimbo_add_connection
  - ndpi_search_yojimbo
  - init_yojimbo_dissector
  source_file: /src/ndpi/src/lib/protocols/yojimbo.c
- function_names:
  - ndpi_search_ceph
  - init_ceph_dissector
  source_file: /src/ndpi/src/lib/protocols/ceph.c
- function_names:
  - ndpi_int_cnp_ip_add_connection
  - ndpi_search_cnp_ip
  - init_cnp_ip_dissector
  source_file: /src/ndpi/src/lib/protocols/cnp-ip.c
- function_names:
  - ndpi_check_vxlan
  - ndpi_search_vxlan
  - init_vxlan_dissector
  source_file: /src/ndpi/src/lib/protocols/vxlan.c
- function_names:
  - ndpi_int_epicgames_add_connection
  - ndpi_search_epicgames
  - init_epicgames_dissector
  source_file: /src/ndpi/src/lib/protocols/epicgames.c
- function_names:
  - ndpi_int_paltalk_add_connection
  - ndpi_search_paltalk
  - init_paltalk_dissector
  source_file: /src/ndpi/src/lib/protocols/paltalk.c
- function_names:
  - ndpi_int_h323_add_connection
  - ndpi_search_h323
  - init_h323_dissector
  source_file: /src/ndpi/src/lib/protocols/h323.c
- function_names:
  - ndpi_int_whatsapp_add_connection
  - ndpi_int_match_whatsapp_sequence
  - ndpi_search_whatsapp
  - init_whatsapp_dissector
  source_file: /src/ndpi/src/lib/protocols/whatsapp.c
- function_names:
  - ndpi_int_kismet_add_connection
  - ndpi_search_kismet
  - init_kismet_dissector
  source_file: /src/ndpi/src/lib/protocols/kismet.c
- function_names:
  - ndpi_search_cpha
  - init_cpha_dissector
  source_file: /src/ndpi/src/lib/protocols/cpha.c
- function_names:
  - ndpi_int_syslog_add_connection
  - ndpi_search_syslog
  - init_syslog_dissector
  source_file: /src/ndpi/src/lib/protocols/syslog.c
- function_names:
  - ndpi_search_hl7
  - init_hl7_dissector
  source_file: /src/ndpi/src/lib/protocols/hl7.c
- function_names:
  - ndpi_search_pfcp
  - init_pfcp_dissector
  source_file: /src/ndpi/src/lib/protocols/pfcp.c
- function_names:
  - ndpi_int_openvpn_add_connection
  - is_opcode_valid
  - get_packet_id
  - check_for_valid_hmac
  - detect_hmac_size
  - search_standard
  - search_heur_opcode_common
  - search_heur_opcode
  - ndpi_search_openvpn
  - init_openvpn_dissector
  source_file: /src/ndpi/src/lib/protocols/openvpn.c
- function_names:
  - ndpi_int_dlep_add_connection
  - ndpi_search_dlep
  - init_dlep_dissector
  source_file: /src/ndpi/src/lib/protocols/dlep.c
- function_names:
  - dump_bt_proto_struct
  - _print_safe_str
  - print_safe_str
  - cb_data
  - bt_decode
  source_file: /src/ndpi/src/lib/protocols/btlib.c
- function_names:
  - ndpi_search_wsd
  - init_wsd_dissector
  source_file: /src/ndpi/src/lib/protocols/wsd.c
- function_names:
  - krb_decode_asn1_length
  - krb_decode_asn1_sequence_type
  - krb_decode_asn1_string_type
  - krb_decode_asn1_int_type
  - krb_decode_asn1_blocks_skip
  - krb_strncpy_lower
  - krb_parse
  - ndpi_int_kerberos_add_connection
  - ndpi_search_kerberos
  - ndpi_search_kerberos_extra
  - init_kerberos_dissector
  source_file: /src/ndpi/src/lib/protocols/kerberos.c
- function_names:
  - ndpi_int_ripe_atlas_add_connection
  - ndpi_search_ripe_atlas
  - init_ripe_atlas_dissector
  source_file: /src/ndpi/src/lib/protocols/ripe_atlas.c
- function_names:
  - ndpi_int_cod_mobile_add_connection
  - ndpi_search_cod_mobile
  - init_cod_mobile_dissector
  source_file: /src/ndpi/src/lib/protocols/cod_mobile.c
- function_names:
  - ndpi_int_snmp_add_connection
  - ndpi_search_snmp_again
  - ndpi_search_snmp
  - init_snmp_dissector
  source_file: /src/ndpi/src/lib/protocols/snmp_proto.c
- function_names:
  - ndpi_int_ptpv2_add_connection
  - ndpi_search_ptpv2_udp
  - init_ptpv2_dissector
  source_file: /src/ndpi/src/lib/protocols/ptpv2.c
- function_names:
  - ndpi_int_z3950_add_connection
  - z3950_parse_sequences
  - ndpi_search_z3950
  - init_z3950_dissector
  source_file: /src/ndpi/src/lib/protocols/z3950.c
- function_names:
  - ndpi_int_imo_add_connection
  - ndpi_search_imo
  - init_imo_dissector
  source_file: /src/ndpi/src/lib/protocols/imo.c
- function_names:
  - ndpi_int_openflow_add_connection
  - ndpi_search_openflow
  - init_openflow_dissector
  source_file: /src/ndpi/src/lib/protocols/openflow.c
- function_names:
  - ndpi_int_teamview_add_connection
  - ndpi_search_teamview
  - init_teamviewer_dissector
  source_file: /src/ndpi/src/lib/protocols/teamviewer.c
- function_names:
  - ndpi_hots_add_connection
  - ndpi_search_hots
  - init_hots_dissector
  source_file: /src/ndpi/src/lib/protocols/hots.c
- function_names:
  - thrift_strict_hdr
  - thrift_compact_hdr
  - ndpi_int_thrift_add_connection
  - thrift_validate_method
  - thrift_validate_version
  - thrift_validate_type
  - thrift_set_method
  - thrift_set_type
  - ndpi_dissect_strict_hdr
  - ndpi_dissect_compact_hdr
  - ndpi_search_thrift_tcp_udp
  - init_apache_thrift_dissector
  source_file: /src/ndpi/src/lib/protocols/thrift.c
- function_names:
  - xiaomi_dissect_metadata
  - ndpi_search_xiaomi
  - init_xiaomi_dissector
  source_file: /src/ndpi/src/lib/protocols/xiaomi.c
- function_names:
  - ndpi_int_bjnp_add_connection
  - ndpi_check_bjnp
  - ndpi_search_bjnp
  - init_bjnp_dissector
  source_file: /src/ndpi/src/lib/protocols/bjnp.c
- function_names:
  - ndpi_int_capwap_add_connection
  - is_capwap_multicast
  - ndpi_search_setup_capwap
  - ndpi_search_capwap
  - init_capwap_dissector
  source_file: /src/ndpi/src/lib/protocols/capwap.c
- function_names:
  - ndpi_int_afp_add_connection
  - ndpi_search_afp
  - init_afp_dissector
  source_file: /src/ndpi/src/lib/protocols/afp.c
- function_names:
  - ndpi_search_ethersio
  - init_ethersio_dissector
  source_file: /src/ndpi/src/lib/protocols/ethersio.c
- function_names:
  - ndpi_int_trdp_add_connection
  - ndpi_search_trdp
  - init_trdp_dissector
  source_file: /src/ndpi/src/lib/protocols/trdp.c
- function_names:
  - ndpi_search_vmware
  - init_vmware_dissector
  source_file: /src/ndpi/src/lib/protocols/vmware.c
- function_names:
  - raft_header
  - ndpi_int_raft_add_connection
  - ndpi_search_raft
  - init_raft_dissector
  source_file: /src/ndpi/src/lib/protocols/raft.c
- function_names:
  - ndpi_int_smpp_add_connection
  - ndpi_check_overflow
  - ndpi_search_smpp_tcp
  - init_smpp_dissector
  source_file: /src/ndpi/src/lib/protocols/smpp.c
- function_names:
  - ndpi_int_tftp_add_connection
  - tftp_dissect_szstr
  - tftp_dissect_mode
  - tftp_dissect_options
  - ndpi_search_tftp
  - init_tftp_dissector
  source_file: /src/ndpi/src/lib/protocols/tftp.c
- function_names:
  - ndpi_search_gearman
  - init_gearman_dissector
  source_file: /src/ndpi/src/lib/protocols/gearman.c
- function_names:
  - ndpi_search_kakaotalk_voice
  - init_kakaotalk_voice_dissector
  source_file: /src/ndpi/src/lib/protocols/kakaotalk_voice.c
- function_names:
  - ndpi_int_sip_add_connection
  - search_cmd
  - get_imsi
  - metadata_enabled
  - search_metadata
  - ndpi_search_sip
  - init_sip_dissector
  source_file: /src/ndpi/src/lib/protocols/sip.c
- function_names:
  - ndpi_int_nexon_add_connection
  - ndpi_search_nexon
  - init_nexon_dissector
  source_file: /src/ndpi/src/lib/protocols/nexon.c
- function_names:
  - ndpi_int_lustre_add_connection
  - ndpi_search_lustre
  - init_lustre_dissector
  source_file: /src/ndpi/src/lib/protocols/lustre.c
- function_names:
  - ndpi_search_cip
  - init_cip_dissector
  source_file: /src/ndpi/src/lib/protocols/cip.c
- function_names:
  - get_ookla_key
  - ookla_search_into_cache
  - ookla_add_to_cache
  - ndpi_search_ookla
  - init_ookla_dissector
  source_file: /src/ndpi/src/lib/protocols/ookla.c
- function_names:
  - ndpi_search_nest_log_sink
  - init_nest_log_sink_dissector
  source_file: /src/ndpi/src/lib/protocols/nest_log_sink.c
- function_names:
  - ndpi_int_discord_add_connection
  - ndpi_search_discord
  - init_discord_dissector
  source_file: /src/ndpi/src/lib/protocols/discord.c
- function_names:
  - ndpi_int_icecast_add_connection
  - ndpi_search_icecast_tcp
  - init_icecast_dissector
  source_file: /src/ndpi/src/lib/protocols/icecast.c
- function_names:
  - ndpi_search_vnc_tcp
  - init_vnc_dissector
  source_file: /src/ndpi/src/lib/protocols/vnc.c
- function_names:
  - ndpi_search_modbus_tcp
  - init_modbus_dissector
  source_file: /src/ndpi/src/lib/protocols/modbus.c
- function_names:
  - ndpi_ether_cache_connection
  - ndpi_ether_is_discv4
  - ndpi_search_ethereum_udp
  - ndpi_is_ether_port
  - ndpi_search_ethereum_tcp
  - ndpi_search_ethereum
  - init_ethereum_dissector
  source_file: /src/ndpi/src/lib/protocols/ethereum.c
- function_names:
  - is_valid_rtp_payload_type
  - rtp_get_stream_type
  - is_valid_rtcp_payload_type
  - is_rtp_or_rtcp
  - get_rtp_info
  - keep_extra_dissection
  - rtp_search_again
  - ndpi_int_rtp_add_connection
  - ndpi_rtp_search
  - ndpi_search_rtp_tcp
  - ndpi_search_rtp_udp
  - ndpi_search_rtp
  - init_rtp_dissector
  source_file: /src/ndpi/src/lib/protocols/rtp.c
- function_names:
  - ndpi_int_protobuf_add_connection
  - protobuf_dissect_tag
  - protobuf_dissect_varint
  - ndpi_search_protobuf
  - init_protobuf_dissector
  source_file: /src/ndpi/src/lib/protocols/protobuf.c
- function_names: []
  source_file: /src/ndpi/src/lib/protocols/btlib.h
- function_names:
  - oicq_hdr
  - ndpi_int_oicq_add_connection
  - ndpi_search_oicq
  - init_oicq_dissector
  source_file: /src/ndpi/src/lib/protocols/oicq.c
- function_names:
  - ndpi_search_egd
  - init_egd_dissector
  source_file: /src/ndpi/src/lib/protocols/egd.c
- function_names:
  - ndpi_int_ieee_c37118_add_connection
  - ndpi_search_ieee_c37118
  - init_ieee_c37118_dissector
  source_file: /src/ndpi/src/lib/protocols/ieee-c37118.c
- function_names:
  - ndpi_int_source_engine_add_connection
  - ndpi_search_source_engine
  - init_source_engine_dissector
  source_file: /src/ndpi/src/lib/protocols/source_engine.c
- function_names:
  - ndpi_search_zmq
  - init_zmq_dissector
  source_file: /src/ndpi/src/lib/protocols/zeromq.c
- function_names:
  - ndpi_search_drda
  - init_drda_dissector
  source_file: /src/ndpi/src/lib/protocols/drda.c
- function_names:
  - ndpi_int_gnutella_add_connection
  - ndpi_search_gnutella
  - init_gnutella_dissector
  source_file: /src/ndpi/src/lib/protocols/gnutella.c
- function_names:
  - ndpi_int_memcached_add_connection
  - ndpi_search_memcached
  - init_memcached_dissector
  source_file: /src/ndpi/src/lib/protocols/memcached.c
- function_names:
  - ndpi_dofus_add_connection
  - ndpi_search_dofus
  - init_dofus_dissector
  source_file: /src/ndpi/src/lib/protocols/dofus.c
- function_names:
  - ndpi_search_dnp3_tcp
  - init_dnp3_dissector
  source_file: /src/ndpi/src/lib/protocols/dnp3.c
- function_names:
  - ndpi_int_genshin_impact_add_connection
  - ndpi_search_genshin_impact
  - init_genshin_impact_dissector
  source_file: /src/ndpi/src/lib/protocols/genshin_impact.c
- function_names:
  - ndpi_int_coap_add_connection
  - isCoAPport
  - ndpi_search_coap
  - init_coap_dissector
  source_file: /src/ndpi/src/lib/protocols/coap.c
- function_names:
  - ssdp_parse_lines
  - ndpi_int_ssdp_add_connection
  - ndpi_search_ssdp
  - init_ssdp_dissector
  source_file: /src/ndpi/src/lib/protocols/ssdp.c
- function_names:
  - ndpi_int_merakicloud_add_connection
  - ndpi_search_merakicloud
  - init_merakicloud_dissector
  source_file: /src/ndpi/src/lib/protocols/merakicloud.c
- function_names:
  - ndpi_int_line_add_connection
  - ndpi_search_line
  - init_line_dissector
  source_file: /src/ndpi/src/lib/protocols/line.c
- function_names:
  - ndpi_int_iec62056_add_connection
  - ndpi_search_iec62056
  - init_iec62056_dissector
  source_file: /src/ndpi/src/lib/protocols/iec62056.c
- function_names:
  - ndpi_int_uftp_add_connection
  - ndpi_search_uftp
  - init_uftp_dissector
  source_file: /src/ndpi/src/lib/protocols/uftp.c
- function_names:
  - ndpi_int_lisp_add_connection
  - ndpi_check_lisp
  - ndpi_search_lisp
  - init_lisp_dissector
  source_file: /src/ndpi/src/lib/protocols/lisp.c
- function_names:
  - ndpi_int_hislip_add_connection
  - ndpi_search_hislip
  - init_hislip_dissector
  source_file: /src/ndpi/src/lib/protocols/hislip.c
- function_names:
  - ndpi_search_guildwars2_tcp
  - init_guildwars2_dissector
  source_file: /src/ndpi/src/lib/protocols/guildwars2.c
- function_names:
  - ndpi_int_ubntac2_add_connection
  - ndpi_search_ubntac2
  - init_ubntac2_dissector
  source_file: /src/ndpi/src/lib/protocols/ubntac2.c
- function_names:
  - is_apple_push_addr
  - ndpi_check_apple_push
  - ndpi_search_apple_push
  - init_apple_push_dissector
  source_file: /src/ndpi/src/lib/protocols/apple_push.c
- function_names:
  - set_mongodb_detected
  - ndpi_check_mongodb
  - ndpi_search_mongodb
  - init_mongodb_dissector
  source_file: /src/ndpi/src/lib/protocols/mongodb.c
- function_names:
  - ndpi_int_kafka_add_connection
  - ndpi_search_kafka
  - init_kafka_dissector
  source_file: /src/ndpi/src/lib/protocols/kafka.c
- function_names:
  - ndpi_int_ipp_add_connection
  - ndpi_search_ipp
  - init_ipp_dissector
  source_file: /src/ndpi/src/lib/protocols/ipp.c
- function_names:
  - ndpi_search_smb_tcp
  - init_smb_dissector
  source_file: /src/ndpi/src/lib/protocols/smb.c
- function_names:
  - ndpi_int_mail_smtp_add_connection
  - get_credentials_auth_plain
  - ndpi_search_mail_smtp_tcp
  - ndpi_extra_search_mail_smtp_tcp
  - smtpInitExtraPacketProcessing
  - init_mail_smtp_dissector
  source_file: /src/ndpi/src/lib/protocols/mail_smtp.c
- function_names:
  - ndpi_rx_header
  - ndpi_check_rx
  - ndpi_search_rx
  - init_rx_dissector
  source_file: /src/ndpi/src/lib/protocols/rx.c
- function_names:
  - ndpi_search_sflow
  - init_sflow_dissector
  source_file: /src/ndpi/src/lib/protocols/sflow.c
- function_names:
  - ndpi_search_mikrotik
  - init_mikrotik_dissector
  source_file: /src/ndpi/src/lib/protocols/mikrotik.c
- function_names:
  - ndpi_int_ldp_add_connection
  - ndpi_search_ldp
  - init_ldp_dissector
  source_file: /src/ndpi/src/lib/protocols/ldp.c
- function_names:
  - dhcp_packet
  - ndpi_int_dhcp_add_connection
  - is_dhcp_magic
  - ndpi_search_dhcp_udp
  - init_dhcp_dissector
  source_file: /src/ndpi/src/lib/protocols/dhcp.c
- function_names:
  - ndpi_sonos_add_connection
  - ndpi_search_sonos
  - init_sonos_dissector
  source_file: /src/ndpi/src/lib/protocols/sonos.c
- function_names:
  - viber_add_connection
  - ndpi_search_viber
  - init_viber_dissector
  source_file: /src/ndpi/src/lib/protocols/viber.c
- function_names:
  - ndpi_int_bfd_add_connection
  - ndpi_search_bfd
  - init_bfd_dissector
  source_file: /src/ndpi/src/lib/protocols/bfd.c
- function_names:
  - ndpi_int_jrmi_add_connection
  - ndpi_search_jrmi
  - init_jrmi_dissector
  source_file: /src/ndpi/src/lib/protocols/jrmi.c
- function_names:
  - ndpi_search_dingtalk
  - init_dingtalk_dissector
  source_file: /src/ndpi/src/lib/protocols/dingtalk.c
- function_names:
  - is_version_forcing_vn
  - is_version_gquic
  - is_version_quic
  - is_version_valid
  - get_u8_quic_ver
  - is_quic_ver_less_than
  - is_quic_ver_greater_than
  - get_u8_gquic_ver
  - is_gquic_ver_less_than
  - is_version_supported
  - is_version_with_encrypted_header
  - is_version_with_tls
  - is_version_with_var_int_transport_params
  - is_version_with_ietf_long_header
  - is_version_with_v1_labels
  - is_version_quic_v2
  - ndpi_quic_version2str
  - quic_len
  - quic_len_buffer_still_required
  - gquic_get_u16
  - __gcry_err
  - pntoh64
  - phton64
  - memdup
  - ws_hmac_buffer
  - hkdf_expand
  - hkdf_extract
  - tls13_hkdf_expand_label_context
  - tls13_hkdf_expand_label
  - quic_hkdf_expand_label
  - quic_hp_cipher_reset
  - quic_pp_cipher_reset
  - quic_ciphers_reset
  - quic_hp_cipher_init
  - quic_pp_cipher_init
  - quic_get_pn_cipher_algo
  - quic_hp_cipher_prepare
  - quic_pp_cipher_prepare
  - quic_ciphers_prepare
  - quic_decrypt_header
  - quic_decrypt_message
  - quic_derive_initial_secrets
  - decrypt_initial_packet
  - update_reasm_buf_bitmap
  - is_reasm_buf_complete
  - __reassemble
  - is_ch_complete
  - is_ch_reassembler_pending
  - get_reassembled_crypto_data
  - get_crypto_data
  - get_clear_payload
  - process_tls
  - process_chlo
  - may_be_gquic_rej
  - may_be_sh
  - may_be_0rtt
  - may_be_initial_pkt
  - eval_extra_processing
  - ndpi_search_quic_extra
  - is_vn
  - ndpi_search_quic_extra_vn
  - ndpi_search_quic
  - init_quic_dissector
  source_file: /src/ndpi/src/lib/protocols/quic.c
- function_names:
  - ndpi_search_whois_das
  - init_whois_das_dissector
  source_file: /src/ndpi/src/lib/protocols/whoisdas.c
- function_names:
  - ndpi_check_citrix
  - ndpi_search_citrix
  - init_citrix_dissector
  source_file: /src/ndpi/src/lib/protocols/citrix.c
- function_names:
  - ndpi_search_bitcoin
  - init_bitcoin_dissector
  source_file: /src/ndpi/src/lib/protocols/bitcoin.c
- function_names:
  - ndpi_search_hsrp
  - init_hsrp_dissector
  source_file: /src/ndpi/src/lib/protocols/hsrp.c
- function_names:
  - ndpi_int_avast_add_connection
  - ndpi_search_avast
  - init_avast_dissector
  source_file: /src/ndpi/src/lib/protocols/avast.c
- function_names:
  - ndpi_int_c1222_add_connection
  - ndpi_search_c1222
  - init_c1222_dissector
  source_file: /src/ndpi/src/lib/protocols/c1222.c
- function_names:
  - ndpi_int_iax_add_connection
  - ndpi_search_setup_iax
  - ndpi_search_iax
  - init_iax_dissector
  source_file: /src/ndpi/src/lib/protocols/iax.c
- function_names:
  - ndpi_int_zabbix_add_connection
  - ndpi_search_zabbix
  - init_zabbix_dissector
  source_file: /src/ndpi/src/lib/protocols/zabbix.c
- function_names:
  - ndpi_int_gaijin_add_connection
  - ndpi_search_gaijin
  - init_gaijin_dissector
  source_file: /src/ndpi/src/lib/protocols/gaijin_entertainment.c
- function_names:
  - ndpi_int_natpmp_add_connection
  - natpmp_disable_extra_dissection
  - natpmp_is_common_header
  - natpmp_is_valid
  - ndpi_search_natpmp_extra
  - ndpi_search_natpmp
  - init_natpmp_dissector
  source_file: /src/ndpi/src/lib/protocols/natpmp.c
- function_names:
  - ndpi_int_lolwildrift_add_connection
  - ndpi_search_lolwildrift
  - init_lolwildrift_dissector
  source_file: /src/ndpi/src/lib/protocols/lol_wild_rift.c
- function_names:
  - ndpi_check_amazon_video
  - ndpi_search_amazon_video
  - init_amazon_video_dissector
  source_file: /src/ndpi/src/lib/protocols/amazon_video.c
- function_names:
  - ndpi_int_ciscovpn_add_connection
  - ndpi_search_ciscovpn
  - init_ciscovpn_dissector
  source_file: /src/ndpi/src/lib/protocols/ciscovpn.c
- function_names:
  - ssh_analyze_signature_version
  - ssh_analyse_cipher
  - search_ssh_again
  - ndpi_int_ssh_add_connection
  - concat_hash_string
  - ndpi_ssh_zap_cr
  - ndpi_search_ssh_tcp
  - init_ssh_dissector
  source_file: /src/ndpi/src/lib/protocols/ssh.c
- function_names:
  - ndpi_int_tivoconnect_add_connection
  - dissect_tivoconnect_data
  - ndpi_search_tivoconnect
  - init_tivoconnect_dissector
  source_file: /src/ndpi/src/lib/protocols/tivoconnect.c
- function_names:
  - ndpi_int_http2_add_connection
  - ndpi_search_http2
  - init_http2_dissector
  source_file: /src/ndpi/src/lib/protocols/http2.c
- function_names:
  - ndpi_int_fins_add_connection
  - ndpi_search_fins
  - init_fins_dissector
  source_file: /src/ndpi/src/lib/protocols/fins.c
- function_names:
  - ndpi_search_tailscale
  - init_tailscale_dissector
  source_file: /src/ndpi/src/lib/protocols/tailscale.c
- function_names:
  - ndpi_int_mgcp_add_connection
  - ndpi_search_mgcp
  - init_mgcp_dissector
  source_file: /src/ndpi/src/lib/protocols/mgcp.c
- function_names:
  - ndpi_int_ftp_control_add_connection
  - ndpi_ftp_control_check_request
  - ndpi_ftp_control_check_response
  - ndpi_check_ftp_control
  - ndpi_search_ftp_control
  - init_ftp_control_dissector
  source_file: /src/ndpi/src/lib/protocols/ftp_control.c
- function_names:
  - is_diameter
  - ndpi_search_diameter
  - init_diameter_dissector
  source_file: /src/ndpi/src/lib/protocols/diameter.c
- function_names:
  - ndpi_search_melsec
  - init_melsec_dissector
  source_file: /src/ndpi/src/lib/protocols/melsec.c
- function_names:
  - ndpi_search_mumble
  - init_mumble_dissector
  source_file: /src/ndpi/src/lib/protocols/mumble.c
- function_names:
  - ndpi_int_ultrasurf_add_connection
  - ndpi_search_ultrasurf
  - init_ultrasurf_dissector
  source_file: /src/ndpi/src/lib/protocols/ultrasurf.c
- function_names:
  - ndpi_int_ftp_data_add_connection
  - ndpi_match_ftp_data_port
  - ndpi_match_ftp_data_directory
  - ndpi_match_file_header
  - ndpi_check_ftp_data
  - ndpi_search_ftp_data
  - init_ftp_data_dissector
  source_file: /src/ndpi/src/lib/protocols/ftp_data.c
- function_names:
  - ndpi_utp_hdr
  - search_bittorrent_again
  - get_utpv1_length
  - is_utpv1_pkt
  - ndpi_search_bittorrent_hash
  - make_bittorrent_host_key
  - make_bittorrent_peers_key
  - ndpi_add_connection_as_bittorrent
  - ndpi_int_search_bittorrent_tcp_zero
  - ndpi_int_search_bittorrent_tcp
  - is_port
  - ndpi_skip_bittorrent
  - ndpi_search_bittorrent
  - init_bittorrent_dissector
  source_file: /src/ndpi/src/lib/protocols/bittorrent.c
- function_names:
  - ndpi_int_teso_add_connection
  - ndpi_search_teso
  - init_teso_dissector
  source_file: /src/ndpi/src/lib/protocols/teso.c
- function_names:
  - slp_hdr_v1
  - slp_hdr_v2
  - slp_url_entry
  - ndpi_int_slp_add_connection
  - slp_check_packet_length
  - slp_check_fid
  - slp_dissect_url_entries
  - ndpi_search_slp_v1
  - ndpi_search_slp_v2
  - ndpi_dissect_slp_v2
  - ndpi_search_slp
  - init_slp_dissector
  source_file: /src/ndpi/src/lib/protocols/slp.c
- function_names:
  - ndpi_search_teredo
  - init_teredo_dissector
  source_file: /src/ndpi/src/lib/protocols/teredo.c
- function_names:
  - ndpi_int_riotgames_add_connection
  - ndpi_search_riotgames
  - init_riotgames_dissector
  source_file: /src/ndpi/src/lib/protocols/riotgames.c
- function_names:
  - ndpi_search_openwire
  - init_openwire_dissector
  source_file: /src/ndpi/src/lib/protocols/openwire.c
- function_names:
  - ndpi_search_mysql_tcp
  - init_mysql_dissector
  source_file: /src/ndpi/src/lib/protocols/mysql.c
- function_names:
  - ndpi_int_teamspeak_add_connection
  - ndpi_search_teamspeak
  - init_teamspeak_dissector
  source_file: /src/ndpi/src/lib/protocols/teamspeak.c
- function_names:
  - ndpi_search_resp
  - init_resp_dissector
  source_file: /src/ndpi/src/lib/protocols/resp.c
- function_names:
  - ndpi_int_telegram_add_connection
  - is_telegram_port_range
  - ndpi_search_telegram
  - init_telegram_dissector
  source_file: /src/ndpi/src/lib/protocols/telegram.c
- function_names:
  - ndpi_search_netflow
  - init_netflow_dissector
  source_file: /src/ndpi/src/lib/protocols/netflow.c
- function_names:
  - ajp_header
  - set_ajp_detected
  - ndpi_check_ajp
  - ndpi_search_ajp
  - init_ajp_dissector
  source_file: /src/ndpi/src/lib/protocols/ajp.c
- function_names:
  - ndpi_int_softether_add_connection
  - dissect_softether_type
  - softether_type_to_enum
  - dissect_softether_tuples
  - dissect_softether_host_fqdn
  - dissect_softether_ip_port
  - ndpi_search_softether
  - ndpi_search_softether_again
  - init_softether_dissector
  source_file: /src/ndpi/src/lib/protocols/softether.c
- function_names:
  - zoom_sfu_enc
  - zoom_media_enc
  - ndpi_int_zoom_add_connection
  - is_zoom_port
  - is_zme
  - is_sfu_5
  - keep_extra_dissection
  - zoom_search_again
  - ndpi_search_zoom
  - init_zoom_dissector
  source_file: /src/ndpi/src/lib/protocols/zoom.c
- function_names:
  - ndpi_int_eaq_add_connection
  - ndpi_search_eaq
  - init_eaq_dissector
  source_file: /src/ndpi/src/lib/protocols/eaq.c
- function_names:
  - ndpi_int_jabber_add_connection
  - check_content_type_and_change_protocol
  - ndpi_search_jabber_tcp
  - init_jabber_dissector
  source_file: /src/ndpi/src/lib/protocols/jabber.c
- function_names:
  - ndpi_int_ipsec_add_connection
  - ndpi_int_check_ports
  - ndpi_int_check_isakmp_v1
  - ndpi_int_check_isakmp_v2
  - ndpi_search_ipsec
  - init_ipsec_dissector
  source_file: /src/ndpi/src/lib/protocols/ipsec.c
- function_names:
  - ndpi_int_mqtt_add_connection
  - get_var_int
  - ndpi_search_mqtt
  - init_mqtt_dissector
  source_file: /src/ndpi/src/lib/protocols/mqtt.c
- function_names:
  - ndpi_validate_cassandra_response
  - ndpi_validate_cassandra_request
  - ndpi_int_cassandra_add_connection
  - ndpi_search_cassandra
  - init_cassandra_dissector
  source_file: /src/ndpi/src/lib/protocols/cassandra.c
- function_names:
  - ndpi_int_armagetron_add_connection
  - ndpi_search_armagetron_udp
  - init_armagetron_dissector
  source_file: /src/ndpi/src/lib/protocols/armagetron.c
- function_names:
  - ndpi_int_hart_ip_add_connection
  - ndpi_search_hart_ip
  - init_hart_ip_dissector
  source_file: /src/ndpi/src/lib/protocols/hart-ip.c
- function_names:
  - ndpi_int_dnscrypt_add_connection
  - ndpi_search_dnscrypt
  - init_dnscrypt_dissector
  source_file: /src/ndpi/src/lib/protocols/dnscrypt.c
- function_names:
  - ndpi_search_s7comm
  - init_s7comm_dissector
  source_file: /src/ndpi/src/lib/protocols/s7comm.c
- function_names:
  - ndpi_search_json_rpc
  - init_json_rpc_dissector
  source_file: /src/ndpi/src/lib/protocols/json-rpc.c
- function_names:
  - ndpi_int_pptp_add_connection
  - ndpi_search_pptp
  - init_pptp_dissector
  source_file: /src/ndpi/src/lib/protocols/pptp.c
- function_names:
  - is_subclassification_real_by_proto
  - is_subclassification_real
  - is_new_subclassification_better
  - search_into_cache
  - add_to_cache
  - parse_ip_port_attribute
  - parse_xor_ip_port_attribute
  - is_stun
  - keep_extra_dissection
  - __get_master
  - stun_search_again
  - stun_telegram_search_again
  - get_stun_lru_key
  - get_stun_lru_key_raw4
  - get_stun_lru_key_raw6
  - ndpi_int_stun_add_connection
  - switch_extra_dissection_to_stun
  - ndpi_search_stun
  - get_signal_key
  - signal_search_into_cache
  - signal_add_to_cache
  - init_stun_dissector
  source_file: /src/ndpi/src/lib/protocols/stun.c
- function_names:
  - ndpi_int_alicloud_add_connection
  - ndpi_search_alicloud
  - init_alicloud_dissector
  source_file: /src/ndpi/src/lib/protocols/alicloud.c
- function_names:
  - ndpi_int_ntp_add_connection
  - ndpi_search_ntp_udp
  - init_ntp_dissector
  source_file: /src/ndpi/src/lib/protocols/ntp.c
- function_names:
  - ndpi_int_gearup_booster_add_connection
  - ndpi_search_gearup_booster
  - init_gearup_booster_dissector
  source_file: /src/ndpi/src/lib/protocols/gearup_booster.c
- function_names:
  - ndpi_int_dcerpc_add_connection
  - is_connection_oriented_dcerpc
  - is_connectionless_dcerpc
  - ndpi_search_dcerpc
  - init_dcerpc_dissector
  source_file: /src/ndpi/src/lib/protocols/dcerpc.c
- function_names:
  - ndpi_int_stomp_add_connection
  - ndpi_search_stomp
  - init_stomp_dissector
  source_file: /src/ndpi/src/lib/protocols/stomp.c
- function_names:
  - ndpi_int_qq_add_connection
  - ndpi_search_qq
  - init_qq_dissector
  source_file: /src/ndpi/src/lib/protocols/qq.c
- function_names:
  - ndpi_int_mssql_tds_add_connection
  - ndpi_search_mssql_tds
  - init_mssql_tds_dissector
  source_file: /src/ndpi/src/lib/protocols/mssql_tds.c
- function_names:
  - ndpi_search_fix
  - init_fix_dissector
  source_file: /src/ndpi/src/lib/protocols/fix.c
- function_names:
  - ndpi_int_ldap_add_connection
  - ndpi_search_ldap
  - init_ldap_dissector
  source_file: /src/ndpi/src/lib/protocols/ldap.c
- function_names:
  - ndpi_int_xdmcp_add_connection
  - ndpi_search_xdmcp
  - init_xdmcp_dissector
  source_file: /src/ndpi/src/lib/protocols/xdmcp.c
- function_names:
  - ndpi_int_mail_pop_add_connection
  - ndpi_int_mail_pop_check_for_client_commands
  - ndpi_search_mail_pop_tcp
  - ndpi_extra_search_mail_pop_tcp
  - popInitExtraPacketProcessing
  - init_mail_pop_dissector
  source_file: /src/ndpi/src/lib/protocols/mail_pop.c
- function_names:
  - ndpi_int_postgres_add_connection
  - ndpi_search_postgres_tcp
  - init_postgres_dissector
  source_file: /src/ndpi/src/lib/protocols/postgres.c
- function_names:
  - ndpi_int_iso9506_1_mms_add_connection
  - ndpi_search_iso9506_1_mms
  - init_iso9506_1_mms_dissector
  source_file: /src/ndpi/src/lib/protocols/iso9506-1-mms.c
- function_names:
  - ndpi_int_rsync_add_connection
  - ndpi_search_rsync
  - init_rsync_dissector
  source_file: /src/ndpi/src/lib/protocols/rsync.c
- function_names:
  - ndpi_search_bfcp
  - init_bfcp_dissector
  source_file: /src/ndpi/src/lib/protocols/bfcp.c
- function_names:
  - ndpi_int_threema_add_connection
  - ndpi_search_threema
  - init_threema_dissector
  source_file: /src/ndpi/src/lib/protocols/threema.c
- function_names:
  - ndpi_search_mpegts
  - init_mpegts_dissector
  source_file: /src/ndpi/src/lib/protocols/mpegts.c
- function_names:
  - kcp_header
  - ndpi_int_kcp_add_connection
  - ndpi_search_kcp
  - init_kcp_dissector
  source_file: /src/ndpi/src/lib/protocols/kcp.c
- function_names:
  - is_valid_knxnet_ip_service_id
  - ndpi_int_knxnet_ip_add_connection
  - ndpi_search_knxnet_ip
  - init_knxnet_ip_dissector
  source_file: /src/ndpi/src/lib/protocols/knxnet_ip.c
- function_names:
  - ams_tcp_hdr
  - ndpi_int_beckhoff_ads_add_connection
  - ndpi_search_beckhoff_ads
  - init_beckhoff_ads_dissector
  source_file: /src/ndpi/src/lib/protocols/beckhoff_ads.c
- function_names:
  - ndpi_search_tcp_or_udp_raw
  - ndpi_search_tcp_or_udp
  source_file: /src/ndpi/src/lib/protocols/tcp_udp.c
- function_names:
  - ndpi_int_sd_rtn_add_connection
  - ndpi_int_sd_rtn_dissect_sni
  - ndpi_search_sd_rtn
  - init_sd_rtn_dissector
  source_file: /src/ndpi/src/lib/protocols/sd_rtn.c
- function_names:
  - ndpi_check_dns_type
  - checkPort
  - isMDNSMulticastAddress
  - isLLMNRMulticastAddress
  - checkDNSSubprotocol
  - get16
  - getNameLength
  - dns_error_code2string
  - fpc_dns_cache_key_from_flow
  - fpc_dns_cache_key_from_packet
  - ndpi_grab_dns_name
  - process_queries
  - process_answers
  - process_additionals
  - is_valid_dns
  - keep_extra_dissection
  - search_dns_again
  - process_hostname
  - search_dns
  - ndpi_search_dns
  - init_dns_dissector
  source_file: /src/ndpi/src/lib/protocols/dns.c
- function_names:
  - set_websocket_detected
  - ndpi_check_websocket
  - ndpi_search_websocket
  - init_websocket_dissector
  source_file: /src/ndpi/src/lib/protocols/websocket.c
- function_names:
  - search_blizzard_tcp
  - search_blizzard_udp
  - ndpi_search_blizzard
  - init_blizzard_dissector
  source_file: /src/ndpi/src/lib/protocols/blizzard.c
- function_names:
  - ndpi_int_hpvirtgrp_add_connection
  - ndpi_search_hpvirtgrp
  - init_hpvirtgrp_dissector
  source_file: /src/ndpi/src/lib/protocols/hpvirtgrp.c
- function_names:
  - ndpi_search_git
  - init_git_dissector
  source_file: /src/ndpi/src/lib/protocols/git.c
- function_names:
  - ndpi_int_mail_imap_add_connection
  - ndpi_search_mail_imap_tcp
  - init_mail_imap_dissector
  source_file: /src/ndpi/src/lib/protocols/mail_imap.c
- function_names:
  - ndpi_int_toca_boca_add_connection
  - ndpi_search_toca_boca
  - init_toca_boca_dissector
  source_file: /src/ndpi/src/lib/protocols/tocaboca.c
- function_names:
  - ndpi_search_pathofexile
  - init_pathofexile_dissector
  source_file: /src/ndpi/src/lib/protocols/path_of_exile.c
- function_names:
  - ndpi_int_collectd_add_connection
  - npdi_int_collectd_block_size
  - ndpi_int_collectd_check_type
  - ndpi_int_collectd_dissect_hostname
  - ndpi_int_collectd_dissect_username
  - ndpi_search_collectd
  - init_collectd_dissector
  source_file: /src/ndpi/src/lib/protocols/collectd.c
- function_names:
  - is_printable_char
  - is_stop_char
  - ndpi_netbios_name_interpret
  - ndpi_int_netbios_add_connection
  - ndpi_search_netbios
  - init_netbios_dissector
  source_file: /src/ndpi/src/lib/protocols/netbios.c
- function_names:
  - ndpi_int_xbox_add_connection
  - ndpi_search_xbox
  - init_xbox_dissector
  source_file: /src/ndpi/src/lib/protocols/xbox.c
- function_names:
  - ndpi_int_syncthing_add_connection
  - ndpi_search_syncthing
  - init_syncthing_dissector
  source_file: /src/ndpi/src/lib/protocols/syncthing.c
- function_names:
  - ndpi_int_radmin_add_connection
  - ndpi_search_radmin
  - init_radmin_dissector
  source_file: /src/ndpi/src/lib/protocols/radmin.c
- function_names:
  - ndpi_int_dropbox_add_connection
  - ndpi_check_dropbox
  - ndpi_search_dropbox
  - init_dropbox_dissector
  source_file: /src/ndpi/src/lib/protocols/dropbox.c
- function_names:
  - ndpi_check_gtp
  - ndpi_search_gtp
  - init_gtp_dissector
  source_file: /src/ndpi/src/lib/protocols/gtp.c
- function_names:
  - ndpi_int_edonkey_add_connection
  - ndpi_search_edonkey
  - init_edonkey_dissector
  source_file: /src/ndpi/src/lib/protocols/edonkey.c
- function_names:
  - ndpi_int_msdo_add_connection
  - ndpi_search_msdo
  - init_msdo_dissector
  source_file: /src/ndpi/src/lib/protocols/msdo.c
- function_names:
  - ndpi_int_valve_sdr_add_connection
  - ndpi_search_valve_sdr
  - init_valve_sdr_dissector
  source_file: /src/ndpi/src/lib/protocols/steam_datagram_relay.c
- function_names:
  - ndpi_int_ethernet_ip_add_connection
  - ndpi_search_ethernet_ip
  - init_ethernet_ip_dissector
  source_file: /src/ndpi/src/lib/protocols/ethernet_ip.c
- function_names:
  - ndpi_search_iec60870_tcp
  - init_104_dissector
  source_file: /src/ndpi/src/lib/protocols/iec60870-5-104.c
- function_names:
  - ndpi_int_elasticsearch_add_connection
  - ndpi_search_elasticsearch
  - init_elasticsearch_dissector
  source_file: /src/ndpi/src/lib/protocols/elastic_search.c
- function_names:
  - ndpi_int_rdp_add_connection
  - ndpi_search_tls_over_rdp
  - ndpi_search_rdp
  - init_rdp_dissector
  source_file: /src/ndpi/src/lib/protocols/rdp.c
- function_names:
  - ndpi_search_flute
  - init_flute_dissector
  source_file: /src/ndpi/src/lib/protocols/flute.c
- function_names:
  - ndpi_int_opc_ua_add_connection
  - ndpi_search_opc_ua
  - init_opc_ua_dissector
  source_file: /src/ndpi/src/lib/protocols/opc-ua.c
- function_names:
  - ndpi_int_tplink_shp_add_connection
  - ndpi_search_tplink_shp
  - init_tplink_shp_dissector
  source_file: /src/ndpi/src/lib/protocols/tplink_shp.c
- function_names:
  - ndpi_int_netease_add_connection
  - ndpi_search_netease
  - init_netease_games_dissector
  source_file: /src/ndpi/src/lib/protocols/netease_games.c
- function_names:
  - ndpi_int_tencent_games_add_connection
  - ndpi_search_tencent_games
  - init_tencent_games_dissector
  source_file: /src/ndpi/src/lib/protocols/tencent_games.c
- function_names:
  - ndpi_int_crossfire_add_connection
  - ndpi_search_crossfire_tcp_udp
  - init_crossfire_dissector
  source_file: /src/ndpi/src/lib/protocols/crossfire.c
- function_names:
  - can_hdr
  - ndpi_int_can_add_connection
  - ndpi_search_can
  - init_can_dissector
  source_file: /src/ndpi/src/lib/protocols/can.c
- function_names:
  - ndpi_int_usenet_add_connection
  - ndpi_search_usenet_tcp
  - init_usenet_dissector
  source_file: /src/ndpi/src/lib/protocols/usenet.c
- function_names:
  - amqp_header
  - ndpi_int_amqp_add_connection
  - ndpi_search_amqp
  - init_amqp_dissector
  source_file: /src/ndpi/src/lib/protocols/amqp.c
- function_names:
  - ndpi_int_activision_add_connection
  - ndpi_search_activision
  - init_activision_dissector
  source_file: /src/ndpi/src/lib/protocols/activision.c
- function_names:
  - ndpi_int_cloudflare_warp_add_connection
  - ndpi_search_cloudflare_warp
  - init_cloudflare_warp_dissector
  source_file: /src/ndpi/src/lib/protocols/cloudflare_warp.c
- function_names:
  - ndpi_int_haproxy_add_connection
  - ndpi_search_haproxy
  - init_haproxy_dissector
  source_file: /src/ndpi/src/lib/protocols/haproxy.c
- function_names:
  - ndpi_int_irc_add_connection
  - ndpi_check_for_NOTICE_or_PRIVMSG
  - ndpi_check_for_Nickname
  - ndpi_check_for_cmd
  - ndpi_search_irc_tcp
  - init_irc_dissector
  source_file: /src/ndpi/src/lib/protocols/irc.c
- function_names:
  - ndpi_int_skinny_add_connection
  - is_valid_version
  - is_valid_opcode
  - ndpi_search_skinny
  - init_skinny_dissector
  source_file: /src/ndpi/src/lib/protocols/skinny.c
- function_names:
  - mining_make_lru_cache_key
  - cacheMiningHostTwins
  - ndpi_search_mining
  - init_mining_dissector
  source_file: /src/ndpi/src/lib/protocols/mining.c
- function_names:
  - tinc_cache_entry
  - ndpi_check_tinc
  - ndpi_search_tinc
  - init_tinc_dissector
  source_file: /src/ndpi/src/lib/protocols/tinc.c
- function_names:
  - ndpi_int_avast_securedns_add_connection
  - ndpi_search_avast_securedns
  - init_avast_securedns_dissector
  source_file: /src/ndpi/src/lib/protocols/avast_securedns.c
- function_names:
  - ndpi_search_rtps
  - init_rtps_dissector
  source_file: /src/ndpi/src/lib/protocols/rtps.c
- function_names:
  - ndpi_int_zug_add_connection
  - ndpi_search_zug
  - init_zug_dissector
  source_file: /src/ndpi/src/lib/protocols/zug.c
- function_names:
  - search_telnet_again
  - ndpi_int_telnet_add_connection
  - search_iac
  - ndpi_search_telnet_tcp
  - init_telnet_dissector
  source_file: /src/ndpi/src/lib/protocols/telnet.c
- function_names:
  - FCGI_Header
  - FCGI_Params
  - ndpi_int_fastcgi_add_connection
  - fcgi_parse_params
  - ndpi_search_fastcgi
  - ndpi_search_fastcgi_extra
  - init_fastcgi_dissector
  source_file: /src/ndpi/src/lib/protocols/fastcgi.c
- function_names:
  - ndpi_int_glbp_add_connection
  - ndpi_search_glbp
  - init_glbp_dissector
  source_file: /src/ndpi/src/lib/protocols/glbp.c
- function_names:
  - str_contains_digit
  - ndpi_tls_refine_master_protocol
  - __get_master
  - keep_extra_dissection_tcp
  - check_set
  - tls_obfuscated_heur_search
  - tls_obfuscated_heur_search_again
  - switch_extra_dissection_to_tls_obfuscated_heur
  - ndpi_search_tls_memory
  - cleanupServerName
  - extractRDNSequence
  - make_tls_cert_key
  - checkTLSSubprotocol
  - processCertificateElements
  - processCertificate
  - processTLSBlock
  - ndpi_looks_like_tls
  - ndpi_search_tls_tcp
  - is_dtls
  - ndpi_search_dtls
  - tlsInitExtraPacketProcessing
  - switch_extra_dissection_to_tls
  - switch_to_tls
  - tls_subclassify_by_alpn
  - tlsCheckUncommonALPN
  - ndpi_int_tls_add_connection
  - checkExtensions
  - check_sni_is_numeric_ip
  - u_int16_t_cmpfunc
  - is_grease_version
  - ndpi_compute_ja4
  - processClientServerHello
  - ndpi_search_tls_wrapper
  - init_tls_dissector
  source_file: /src/ndpi/src/lib/protocols/tls.c
- function_names:
  - ndpi_int_ethersbus_add_connection
  - ndpi_search_ethersbus
  - init_ethersbus_dissector
  source_file: /src/ndpi/src/lib/protocols/ethersbus.c
- function_names:
  - rmcp_header
  - ndpi_int_rmcp_add_connection
  - ndpi_search_rmcp
  - init_rmcp_dissector
  source_file: /src/ndpi/src/lib/protocols/rmcp.c
- function_names:
  - ndpi_search_in_non_tcp_udp
  - init_non_tcp_udp_dissector
  source_file: /src/ndpi/src/lib/protocols/non_tcp_udp.c
- function_names:
  - ndpi_int_soap_add_connection
  - ndpi_search_soap
  - init_soap_dissector
  source_file: /src/ndpi/src/lib/protocols/soap.c
- function_names:
  - ndpi_int_corba_add_connection
  - ndpi_search_corba
  - init_corba_dissector
  source_file: /src/ndpi/src/lib/protocols/corba.c
- function_names:
  - ndpi_search_megaco
  - init_megaco_dissector
  source_file: /src/ndpi/src/lib/protocols/megaco.c
- function_names:
  - ndpi_int_rtsp_add_connection
  - ndpi_search_rtsp_tcp_udp
  - init_rtsp_dissector
  source_file: /src/ndpi/src/lib/protocols/rtsp.c
- function_names:
  - ndpi_int_socks_add_connection
  - ndpi_check_socks4
  - ndpi_check_socks5
  - ndpi_search_socks
  - init_socks_dissector
  source_file: /src/ndpi/src/lib/protocols/socks45.c
- function_names:
  - ndpi_int_atg_add_connection
  - ndpi_search_atg
  - init_atg_dissector
  source_file: /src/ndpi/src/lib/protocols/atg.c
- function_names:
  - ndpi_int_rsh_add_connection
  - ndpi_search_rsh
  - init_rsh_dissector
  source_file: /src/ndpi/src/lib/protocols/rsh.c
- function_names:
  - ndpi_int_i3d_add_connection
  - ndpi_search_i3d
  - init_i3d_dissector
  source_file: /src/ndpi/src/lib/protocols/i3d.c
- function_names:
  - ndpi_int_dhcpv6_add_connection
  - ndpi_search_dhcpv6_udp
  - init_dhcpv6_dissector
  source_file: /src/ndpi/src/lib/protocols/dhcpv6.c
- function_names:
  - ndpi_search_bgp
  - init_bgp_dissector
  source_file: /src/ndpi/src/lib/protocols/bgp.c
- function_names:
  - ndpi_int_nomachine_add_connection
  - ndpi_search_nomachine
  - init_nomachine_dissector
  source_file: /src/ndpi/src/lib/protocols/nomachine.c
- function_names:
  - ndpi_int_rtmp_add_connection
  - ndpi_check_rtmp
  - ndpi_search_rtmp
  - init_rtmp_dissector
  source_file: /src/ndpi/src/lib/protocols/rtmp.c
- function_names:
  - ndpi_int_spotify_add_connection
  - ndpi_check_spotify
  - ndpi_search_spotify
  - init_spotify_dissector
  source_file: /src/ndpi/src/lib/protocols/spotify.c
- function_names:
  - dicom_header
  - ndpi_search_dicom
  - init_dicom_dissector
  source_file: /src/ndpi/src/lib/protocols/dicom.c
- function_names:
  - ndpi_int_munin_add_connection
  - ndpi_search_munin
  - init_munin_dissector
  source_file: /src/ndpi/src/lib/protocols/munin.c
- function_names:
  - ndpi_int_iqiyi_add_connection
  - ndpi_search_iqiyi
  - init_iqiyi_dissector
  source_file: /src/ndpi/src/lib/protocols/iqiyi.c
- function_names:
  - ndpi_int_wireguard_add_connection
  - ndpi_search_wireguard
  - init_wireguard_dissector
  source_file: /src/ndpi/src/lib/protocols/wireguard.c
- function_names:
  - ndpi_int_zattoo_user_agent_set
  - ndpi_search_zattoo
  - init_zattoo_dissector
  source_file: /src/ndpi/src/lib/protocols/zattoo.c
- function_names:
  - bvlc_header
  - ndpi_int_bacnet_add_connection
  - ndpi_search_bacnet
  - init_bacnet_dissector
  source_file: /src/ndpi/src/lib/protocols/bacnet.c
- function_names:
  - ndpi_search_steam
  - init_steam_dissector
  source_file: /src/ndpi/src/lib/protocols/steam.c
- function_names:
  - ndpi_int_noe_add_connection
  - ndpi_search_noe
  - init_noe_dissector
  source_file: /src/ndpi/src/lib/protocols/noe.c
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/pcap-namedb.h
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/pcap-stdinc.h
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/pcap-bpf.h
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/ip6_misc.h
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/bittypes.h
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/pcap.h
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/remote-ext.h
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/Win32-Extensions.h
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/pcap/bpf.h
- function_names: []
  source_file: /src/ndpi/windows/WpdPack/Include/pcap/pcap.h
- function_names: []
  source_file: /src/ndpi/windows/src/getopt.h
- function_names:
  - exchange_a
  - _getopt_initialize_a
  - _getopt_internal_r_a
  - _getopt_internal_a
  - getopt_a
  - getopt_long_a
  - getopt_long_only_a
  - _getopt_long_r_a
  - _getopt_long_only_r_a
  - exchange_w
  - _getopt_initialize_w
  - _getopt_internal_r_w
  - _getopt_internal_w
  - getopt_w
  - getopt_long_w
  - getopt_long_only_w
  - _getopt_long_r_w
  - _getopt_long_only_r_w
  source_file: /src/ndpi/windows/src/getopt.c
- function_names:
  - gettimeofday
  source_file: /src/ndpi/windows/src/win-gettimeofday.c
- function_names: []
  source_file: /src/ndpi/windows/src/ndpi_config.h
- function_names:
  - get_u_int64_t
  source_file: /src/ndpi/windows/src/ndpi_define.h
- function_names:
  - help
  - main
  source_file: /src/ndpi/rrdtool/rrd_anomaly.c
- function_names:
  - help
  - analyze_rrd
  - circles_touch
  - find_rrd_similarities
  - find_rrds
  - main
  source_file: /src/ndpi/rrdtool/rrd_similarity.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_hll.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_crc32_md5.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_domain_classify.cpp
- function_names:
  - ndpi_custom_dga_fn
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_dga.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_libinjection.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_filecfg_malicious_ja4.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_filecfg_malicious_sha1.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_process_packet.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_bitmap64_fuse.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_kdtree.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_community_id.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_filecfg_protocols.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_quic_get_crypto_data.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_shoco.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_gcrypt_aes.cpp
- function_names: []
  source_file: /src/ndpi/fuzz/fuzz_common_code.h
- function_names:
  - __compare
  - __free
  - __walk
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_tree.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_gcrypt_cipher.cpp
- function_names:
  - LLVMFuzzerCustomMutator
  - node_cleanup_walker
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ndpi_reader.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_address_cache.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_jitter.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_readerutils_parseprotolist.cpp
- function_names:
  - fastrand
  - malloc_wrapper
  - free_wrapper
  - fuzz_set_alloc_callbacks
  - fuzz_set_alloc_seed
  - fuzz_set_alloc_callbacks_and_seed
  - fuzz_init_detection_module
  - buffer_to_file
  source_file: /src/ndpi/fuzz/fuzz_common_code.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_quick_encryption.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_gcrypt_light.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_filecfg_risk_domains.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_is_stun.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_ses_des.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_bins.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_readerutils_workflow.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_ptree.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_binaryfusefilter.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_btree.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_filecfg_config.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_ahocorasick.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_hash.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_config.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_filecfg_categories.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_serialization.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_memmem.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_gcrypt_gcm.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_strnstr.cpp
- function_names:
  - process_ptree_data
  - process3_ptree_data
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_patricia.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_alg_bytestream.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_tls_certificate.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_filecfg_category.c
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_cmsketch.cpp
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/ndpi/fuzz/fuzz_ds_libcache.cpp
- function_names:
  - init_workflow
  - ndpi_flow_info_freer
  - free_workflow
  - get_default_pcapdev
  - setup_reader_threads
  - ip_tuple_to_string
  - print_packet_info
  - ip_tuples_compare
  - ndpi_idle_scan_walker
  - ndpi_workflow_node_cmp
  - check_for_idle_flows
  - ndpi_process_packet
  - run_pcap_loop
  - break_pcap_loop
  - processing_thread
  - processing_threads_error_or_eof
  - start_reader_threads
  - stop_reader_threads
  - sighandler
  - main
  source_file: /src/ndpi/example/ndpiSimpleIntegration.c
- function_names:
  - ndpi_analyze_payload
  - ndpi_payload_analyzer
  - payload_stats_sort_asc
  - print_payload_stat
  - ndpi_report_payload_stats
  - ndpi_free_flow_info_half
  - parse_proto_name_list
  - load_public_lists
  - ndpi_workflow_init
  - ndpi_flow_info_freer
  - ndpi_free_flow_tls_data
  - ndpi_free_flow_data_analysis
  - ndpi_flow_info_free_data
  - ndpi_workflow_free
  - cmp_n32
  - cmp_n16
  - ndpi_workflow_node_cmp
  - ndpi_flow_update_byte_count
  - ndpi_flow_update_byte_dist_mean_var
  - get_ndpi_flow_info
  - get_ndpi_flow_info6
  - is_ndpi_proto
  - correct_csv_data_field
  - plen2slot
  - dump_flow_fingerprint
  - add_to_address_port_list
  - process_ndpi_monitoring_info
  - serialize_monitoring_metadata
  - process_ndpi_collected_info
  - ndpi_clear_entropy_stats
  - update_tcp_flags_count
  - packet_processing
  - ndpi_is_datalink_supported
  - ndpi_is_valid_vxlan
  - ndpi_skip_vxlan
  - ndpi_is_valid_gre_tunnel
  - ndpi_workflow_process_packet
  - dpdk_port_init
  - dpdk_port_deinit
  source_file: /src/ndpi/example/reader_util.c
- function_names:
  - ndpi_workflow_set_flow_callback
  source_file: /src/ndpi/example/reader_util.h
- function_names:
  - ndpi_packet_trailer
  - reader_slot_malloc_bins
  - ndpi_malloc_wrapper
  - free_wrapper
  - init_doh_bins
  - check_bin_doh_similarity
  - ndpiCheckHostStringMatch
  - ndpi_cfg_error2string
  - ndpiCheckIPMatch
  - ndpi_flow_get_byte_count_entropy
  - flowGetBDMeanandVariance
  - help
  - extcap_interfaces
  - extcap_dlts
  - cmpProto
  - cmpFlows
  - extcap_config
  - extcap_capture
  - printCSVHeader
  - parse_three_strings
  - reader_add_cfg
  - parse_parameters
  - parseOptions
  - print_cipher
  - print_bin
  - print_ndpi_address_port_list_file
  - printFlow
  - printFlowSerialized
  - node_print_unknown_proto_walker
  - node_print_known_proto_walker
  - node_proto_guess_walker
  - updateScanners
  - updateIpTree
  - freeIpTree
  - updateTopIpAddress
  - updatePortStats
  - acceptable
  - receivers_sort_asc
  - cutBackTo
  - mergeTables
  - deleteReceivers
  - updateReceivers
  - deleteScanners
  - deletePortsStats
  - port_stats_walker
  - node_idle_scan_walker
  - is_realtime_protocol
  - dump_realtime_protocol
  - on_protocol_discovered
  - setupDetection
  - terminateDetection
  - formatTraffic
  - formatPackets
  - formatBytes
  - port_stats_sort
  - info_pair_cmp
  - printPortStats
  - node_flow_risk_walker
  - printRiskStats
  - hash_stats_sort_to_order
  - hash_stats_sort_to_print
  - printFlowsStats
  - printResults
  - breakPcapLoop
  - sigproc
  - getNextPcapFileFromPlaylist
  - configurePcapHandle
  - openPcapFileOrDevice
  - ndpi_process_packet
  - runPcapLoop
  - processing_thread
  - test_lib
  - binUnitTest
  - dgaUnitTest
  - hllUnitTest
  - bitmapUnitTest
  - automataUnitTest
  - automataDomainsUnitTest
  - analyzeUnitTest
  - bpf_filter_port_array_init
  - bpf_filter_host_array_init
  - bpf_filter_host_array_add
  - bpf_filter_port_array_add
  - analysisUnitTest
  - rsiUnitTest
  - hashUnitTest
  - hwUnitTest
  - hwUnitTest2
  - sesUnitTest
  - desUnitTest
  - desUnitStressTest
  - hwUnitTest3
  - jitterUnitTest
  - compressedBitmapUnitTest
  - strtonumUnitTest
  - strlcpyUnitTest
  - strnstrUnitTest
  - strncasestrUnitTest
  - memmemUnitTest
  - memcasecmpUnitTest
  - mahalanobisUnitTest
  - bitmaskUnitTest
  - filterUnitTest
  - zscoreUnitTest
  - linearUnitTest
  - sketchUnitTest
  - binaryBitmapUnitTest
  - pearsonUnitTest
  - outlierUnitTest
  - loadStressTest
  - kdUnitTest
  - ballTreeUnitTest
  - cryptDecryptUnitTest
  - encodeDomainsUnitTest
  - checkProtocolIDsUnitTest
  - domainsUnitTest
  - domainSearchUnitTest
  - domainSearchUnitTest2
  - domainCacheTestUnit
  - main
  - WinMain
  - gettimeofday
  source_file: /src/ndpi/example/ndpiReader.c
